I am seeing a failure in fcoe_transport_create on a 64-bit single-CPU 
environment (I'm testing in a VM with one CPU assigned).
The size in the call to __alloc_percpu() is greater than the max of 32K because 
it allocates 4K pointers + header across all CPUs.
Reducing FCOE_MAX_ID from 0x0FFF to 0x0F7F fixes the problem at the expense of 
0x80 fewer allowed open exchanges.
I can prepare a patch for that, but maybe someone knowledgeable can suggest a 
better fix.

stack trace is below:

[  123.041704] WARNING: at mm/percpu.c:716 pcpu_alloc+0x9e1/0x9f0()
[  123.041706] Hardware name: Bochs
[  123.041708] illegal size (32832) or align (64) for percpu allocation
[  123.041709] Modules linked in: fuse raid0 fcoe libfcoe 8021q garp stp llc 
libfc scsi_transport_fc scsi_tgt joydev ixgbe floppy ppdev parport_pc parport 
sym53c8xx microcode 8139too scsi_transport_spi i2c_piix4 i2c_core dca mdio 
8139cp pcspkr mii uinput [last unloaded: scsi_wait_scan]
[  123.041733] Pid: 1530, comm: tgt_startup.sh Not tainted 3.2.0-1.fcoe+ #3
[  123.041735] Call Trace:
[  123.041750]  [<ffffffff8105654f>] warn_slowpath_common+0x7f/0xc0
[  123.041753]  [<ffffffff81056646>] warn_slowpath_fmt+0x46/0x50
[  123.041764]  [<ffffffff8111cc4b>] ? mempool_create_node+0x6b/0x140
[  123.041769]  [<ffffffff8113a891>] pcpu_alloc+0x9e1/0x9f0
[  123.041771]  [<ffffffff8111ca65>] ? mempool_alloc_slab+0x15/0x20
[  123.041773]  [<ffffffff8111ca30>] ? mempool_kmalloc+0x20/0x20
[  123.041775]  [<ffffffff8111ca65>] ? mempool_alloc_slab+0x15/0x20
[  123.041777]  [<ffffffff8111cccb>] ? mempool_create_node+0xeb/0x140
[  123.041780]  [<ffffffff8113a8b0>] __alloc_percpu+0x10/0x20
[  123.041793]  [<ffffffffa00f3117>] fc_exch_mgr_alloc+0x107/0x210 [libfc]
[  123.041799]  [<ffffffffa0132138>] fcoe_if_create+0x538/0x750 [fcoe]
[  123.041802]  [<ffffffffa01327b3>] fcoe_create+0x2c3/0x620 [fcoe]
[  123.041810]  [<ffffffffa0124418>] fcoe_transport_create+0x178/0x2a0 [libfcoe]
[  123.041819]  [<ffffffff81075a69>] param_attr_store+0x49/0x80
[  123.041822]  [<ffffffff8107567d>] module_attr_store+0x1d/0x40
[  123.041839]  [<ffffffff811e55ef>] sysfs_write_file+0xef/0x170
[  123.041848]  [<ffffffff81178a13>] vfs_write+0xb3/0x180
[  123.041851]  [<ffffffff81178d3a>] sys_write+0x4a/0x90
[  123.041866]  [<ffffffff815ed5a9>] system_call_fastpath+0x16/0x1b
[  123.041868] ---[ end trace b7fcc55c13016a43 ]---
[  123.041873] fcoe_em_config: failed to allocate em on interface eth1
[  123.041880] fcoe: Failed to create interface (eth1)


_______________________________________________
devel mailing list
devel@open-fcoe.org
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to