Bug #310

BQL patch fails on 3.1.1

Added by Dave Täht over 1 year ago. Updated about 1 year ago.

Status:Closed Start date:11/25/2011
Priority:Normal Due date:
Assignee:Dave Täht % Done:

0%

Category:Build Spent time: 106.00 hours
Target version:1st Public Cerowrt release Estimated time:70.00 hours

Description

Same patch works on same kernel version, must be a problem with a .config conflict

make5: Entering directory `/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1'
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC net/core/net-sysfs.o
net/core/net-sysfs.c: In function 'netdev_queue_attr_show':
net/core/net-sysfs.c:803:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c:803:31: warning: type defaults to 'int' in declaration of '__mptr'
net/core/net-sysfs.c:803:31: warning: initialization from incompatible pointer type
net/core/net-sysfs.c:803:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c: In function 'netdev_queue_attr_store':
net/core/net-sysfs.c:816:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c:816:31: warning: type defaults to 'int' in declaration of '__mptr'
net/core/net-sysfs.c:816:31: warning: initialization from incompatible pointer type
net/core/net-sysfs.c:816:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c: In function 'netdev_queue_release':
net/core/net-sysfs.c:1194:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c:1194:31: warning: type defaults to 'int' in declaration of '__mptr'
net/core/net-sysfs.c:1194:31: warning: initialization from incompatible pointer type
net/core/net-sysfs.c:1194:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c: In function 'netdev_queue_add_kobject':
net/core/net-sysfs.c:1213:31: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c:1216:18: error: 'struct net_device' has no member named 'queues_kset'
net/core/net-sysfs.c: In function 'netdev_queue_update_kobjects':
net/core/net-sysfs.c:1258:28: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c:1260:21: error: 'struct netdev_queue' has no member named 'kobj'
net/core/net-sysfs.c: In function 'register_queue_kobjects':
net/core/net-sysfs.c:1274:5: error: 'struct net_device' has no member named 'queues_kset'
net/core/net-sysfs.c:1276:10: error: 'struct net_device' has no member named 'queues_kset'
net/core/net-sysfs.c: In function 'remove_queue_kobjects':
net/core/net-sysfs.c:1315:21: error: 'struct net_device' has no member named 'queues_kset'
make7: * [net/core/net-sysfs.o] Error 1
make6:
[net/core] Error 2
make5:
[net] Error 2
make5: Leaving directory `/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1'
make4:
[/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1/.image] Error 2
make4: Leaving directory `/home/cero1/src/cerowrt/target/linux/ar71xx'
make3:
[install] Error 2
make3: Leaving directory `/home/cero1/src/cerowrt/target/linux'
make2:
[target/linux/install] Error 2
make2: Leaving directory `/home/cero1/src/cerowrt'
make1: *
* [/home/cero1/src/cerowrt/staging_dir/target-mips_r2_uClibc-0.9.32/stamp/.target_install] Error 2
make1: Leaving directory `/home/cero1/src/cerowrt'

ag71xx_main.c (28.2 kB) Dave Täht, 01/28/2012 09:31 am

yetanotherbadbql.patch (1.9 kB) Dave Täht, 01/28/2012 09:31 am

History

Updated by Dave Täht over 1 year ago

just feel the un-merged pain... there are dozens of machines here not in the mainline kernel.

cerowrt/target/linux/ar71xx/files/arch/mips/ar71xx

Updated by Dave Täht over 1 year ago

and basically the update to 3.2 moved a ton of dirs around.

Updated by Dave Täht over 1 year ago

  • Estimated time changed from 16.00 to 70.00

It turned out I had deeper problems. It turned out all of 3.1.1 was failing to build.

Still unfixed.

3.0 is also failing to build.

Updated by Dave Täht over 1 year ago

  • Category set to Build
  • Assignee set to Dave Täht

3.1.5 finally built after backing out multiple changes to find the problem, and getting a new patchset from the net.

Updated by Dave Täht over 1 year ago

I have successfully backported BQL to 3.2.2 and tested on x86 with the e1000e driver.

My attempt at wedging BQL support into the ag71xx driver, however, fails. It does
get one packet out... So I have to look harder at the relevant drivers and see where
I went wrong.

[ 12.560000] USB Mass Storage support registered.
[ 17.050000] ------------[ cut here ]------------
[ 17.050000] WARNING: at net/sched/sch_generic.c:256 dev_watchdog+0x178/0x280()
[ 17.060000] NETDEV WATCHDOG: eth0 (ag71xx): transmit queue 0 timed out
[ 17.060000] Modules linked in: usb_storage ohci_hcd ehci_hcd sd_mod ext4 jbd2 mbcache usbcore usb_common scsi_mod nls_base crc16 leds_gpio button_hotplug(O) gpio_keys_polled input_polldev input_core
[ 17.080000] Call Trace:
[ 17.080000] [<802818e8>] dump_stack+0x8/0x34
[ 17.090000] [<80075e58>] warn_slowpath_common+0x78/0xa4
[ 17.090000] [<80075f0c>] warn_slowpath_fmt+0x2c/0x38
[ 17.100000] [<801fd2dc>] dev_watchdog+0x178/0x280
[ 17.100000] [<80080528>] run_timer_softirq+0x14c/0x1ec
[ 17.110000] [<8007b674>] __do_softirq+0xac/0x15c
[ 17.110000] [<8007b87c>] do_softirq+0x48/0x68
[ 17.120000] [<80062bec>] ret_from_irq+0x0/0x4
[ 17.120000] [<80062de0>] r4k_wait+0x20/0x40
[ 17.130000] [<800648a8>] cpu_idle+0x24/0x44
[ 17.130000] [<803148c8>] start_kernel+0x37c/0x39c
[ 17.130000]
[ 17.140000] ---[ end trace ad0f0a4fc2f62e9d ]---
[ 17.140000] eth0: tx timeout
[ 17.140000] eth0: link down
[ 17.150000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 17.150000] eth0: link up (1000Mbps/Full duplex)
[ 27.050000] eth0: tx timeout
[ 27.050000] eth0: link down
[ 27.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 27.050000] eth0: link up (1000Mbps/Full duplex)
[ 32.830000] eth0: link down
[ 35.940000] Compat-wireless backport release: compat-wireless-2011-11-29
[ 35.940000] Backport based on wireless-testing.git master-2011-12-01
[ 35.970000] cfg80211: Calling CRDA to update world regulatory domain
[ 36.390000] NET: Registered protocol family 10
[ 36.850000] cfg80211: World regulatory domain updated:
[ 36.850000] cfg80211: (start_freq - end_freq bandwidth), (max_antenna_gain, max_eirp)
[ 36.860000] cfg80211: (2402000 KHz - 2472000 KHz
40000 KHz), (300 mBi, 2000 mBm)
[ 36.870000] cfg80211: (2457000 KHz - 2482000 KHz 20000 KHz), (300 mBi, 2000 mBm)
[ 36.880000] cfg80211: (2474000 KHz - 2494000 KHz
20000 KHz), (300 mBi, 2000 mBm)
[ 36.880000] cfg80211: (5170000 KHz - 5250000 KHz 40000 KHz), (300 mBi, 2000 mBm)
[ 36.890000] cfg80211: (5735000 KHz - 5835000 KHz
40000 KHz), (300 mBi, 2000 mBm)
[ 37.870000] PCI: Enabling device 0000:00:11.0 (0000 > 0002)
[ 37.890000] ath: EEPROM regdomain: 0x0
[ 37.890000] ath: EEPROM indicates default country code should be used
[ 37.890000] ath: doing EEPROM country
>regdmn map search
[ 37.890000] ath: country maps to regdmn code: 0x3a
[ 37.890000] ath: Country alpha2 being used: US
[ 37.890000] ath: Regpair used: 0x3a
[ 37.890000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 37.890000] Registered led device: ath9k-phy0
[ 37.890000] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000, irq=40
[ 37.900000] PCI: Enabling device 0000:00:12.0 (0000 > 0002)
[ 37.910000] ath: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
[ 37.920000] ath: random mac address will be used: ea:79:26:a7:81:75
[ 37.920000] ath: EEPROM regdomain: 0x0
[ 37.920000] ath: EEPROM indicates default country code should be used
[ 37.920000] ath: doing EEPROM country
>regdmn map search
[ 37.920000] ath: country maps to regdmn code: 0x3a
[ 37.920000] ath: Country alpha2 being used: US
[ 37.920000] ath: Regpair used: 0x3a
[ 37.930000] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 37.930000] Registered led device: ath9k-phy1
[ 37.930000] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000, irq=41
[ 37.940000] cfg80211: Calling CRDA for country: US
[ 38.160000] cfg80211: Regulatory domain changed to country: US
[ 38.170000] cfg80211: (start_freq - end_freq bandwidth), (max_antenna_gain, max_eirp)
[ 38.180000] cfg80211: (2402000 KHz - 2472000 KHz
40000 KHz), (300 mBi, 2700 mBm)
[ 38.180000] cfg80211: (5170000 KHz - 5250000 KHz 40000 KHz), (300 mBi, 1700 mBm)
[ 38.190000] cfg80211: (5250000 KHz - 5330000 KHz
40000 KHz), (300 mBi, 2000 mBm)
[ 38.200000] cfg80211: (5490000 KHz - 5600000 KHz 40000 KHz), (300 mBi, 2000 mBm)
[ 38.210000] cfg80211: (5650000 KHz - 5710000 KHz
40000 KHz), (300 mBi, 2000 mBm)
[ 38.220000] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[ 38.360000] PPP generic driver version 2.4.2
[ 38.450000] tun: Universal TUN/TAP device driver, 1.6
[ 38.450000] tun: (C) 1999-2004 Max Krasnyansky <>
[ 38.480000] IPv6 over IPv4 tunneling driver
[ 38.580000] GRE over IPv4 demultiplexor driver
[ 38.640000] GRE over IPv4 tunneling driver
[ 38.720000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 38.890000] NET: Registered protocol family 24
[ 38.950000] nf_conntrack version 0.5.0 (963 buckets, 3852 max)
[ 39.050000] PPTP driver version 0.8.5
[ 39.290000] xt_time: kernel timezone is -0000
[ 39.480000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 41.350000] ADDRCONF: ge00: link is not ready
[ 43.030000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 43.030000] se00: link up (1000Mbps/Full duplex)
[ 48.080000] ADDRCONF: sw00: link is not ready
[ 50.770000] ADDRCONF: gw01: link is not ready
[ 53.050000] se00: tx timeout
[ 53.050000] se00: link down
[ 53.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 53.050000] se00: link up (1000Mbps/Full duplex)
[ 53.470000] ADDRCONF: sw10: link is not ready
[ 57.840000] gw01: Creating new IBSS network, BSSID ce:05:e9:34:0c:37
[ 57.840000] ADDRCONF: gw01: link becomes ready
[ 58.750000] ADDRCONF: gw11: link is not ready
[ 63.050000] se00: tx timeout
[ 63.050000] se00: link down
[ 63.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 63.050000] se00: link up (1000Mbps/Full duplex)
[ 67.040000] gw11: Creating new IBSS network, BSSID a2:37:f6:1d:cc:2e
[ 67.040000] ADDRCONF: gw11: link becomes ready
[ 73.050000] se00: tx timeout
[ 73.050000] se00: link down
[ 73.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 73.050000] se00: link up (1000Mbps/Full duplex)
[ 83.050000] se00: tx timeout
[ 83.050000] se00: link down
[ 83.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 83.050000] se00: link up (1000Mbps/Full duplex)
[ 93.050000] se00: tx timeout
[ 93.050000] se00: link down
[ 93.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 93.050000] se00: link up (1000Mbps/Full duplex)
[ 103.050000] se00: tx timeout
[ 103.050000] se00: link down
[ 103.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 103.050000] se00: link up (1000Mbps/Full duplex)
[ 113.050000] se00: tx timeout
[ 113.050000] se00: link down
[ 113.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 113.050000] se00: link up (1000Mbps/Full duplex)
[ 123.050000] se00: tx timeout
[ 123.050000] se00: link down
[ 123.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 123.050000] se00: link up (1000Mbps/Full duplex)

Updated by Dave Täht over 1 year ago

Updated by Dave Täht over 1 year ago

I got it working... now to test.

Updated by Dave Täht over 1 year ago

  • Status changed from New to Closed

I am happy to report I got bql backported to 3.2.2 successfully. Or so I think.

Updated by Tim Zhang over 1 year ago

Please enable this option when you configure your kernel, using 'make menuconfig'.

Networking support --> Networking options --> RPS

Because 'struct netdev_queue' has the member 'kobj' only when CONFIG_RPS is defined.
So does 'queues_kset' in 'struct net_device'.

You can find the definition in 'include/linux/netdevice.h'.

struct net_device {
...
#ifdef CONFIG_RPS
    struct kset     *queues_kset;
    struct netdev_rx_queue  *_rx;
    /* Number of RX queues allocated at register_netdev() time */
    unsigned int        num_rx_queues;
    /* Number of RX queues currently active in device */
    unsigned int        real_num_rx_queues;
#ifdef CONFIG_RFS_ACCEL
    /* CPU reverse-mapping for RX completion interrupts, indexed by RX queue number. Assigned by driver.
     * This must only be set if the ndo_rx_flow_steer operation is defined. */
    struct cpu_rmap     *rx_cpu_rmap;
#endif
#endif
...
};
...
struct netdev_queue {
...
#ifdef CONFIG_RPS
    struct kobject      kobj;
#endif
...
} ____cacheline_aligned_in_smp;

Have a good day!

Updated by Dave Täht about 1 year ago

  • Target version changed from Cerowrt-1.0-rc8 to 1st Public Cerowrt release

Also available in: Atom PDF