[rds-devel] Using interrupt context

Dirk Kirsten dirk.kirsten at de.ibm.com
Mon May 17 00:52:46 PDT 2010


Hi,

I am currently developing a transport module for RDS. There seems to be a
problem with the synchronization in the current code. I would like to call
rds_conn_create and the whole receiving part from within the interrupt
context. If I do so, the GFP_KERNEL in rds_conn_from_addr() seems to be a
problem. In __rds_conn_create there is still a gfp_t passed as argument, so
would it be possible to simply pass this to rds_conn_from_addr() as well?
Or is there any reason why you are not doing this?

Additionally there is a problem due to the interrupt context in
rds_trans_get_preferred() with the semaphore. Would it be possible to
change this?

Otherwise I have to use a bottom-half which I would really like to avoid
due to performance issues.

Here is an old stacktrace (still from 2.6.32, but as far as I can see there
is no change regarding this in the current version):

([<0000000000016500>] show_trace+0x124/0x148)
 [<0000000000035564>] __might_sleep+0x138/0x164
 [<00000000000d1cec>] kmem_cache_alloc+0xe4/0x158
 [<000003e000438168>] rds_cong_from_addr+0x3c/0x158 [rds]
 [<000003e0004382b6>] rds_cong_get_maps+0x32/0x88 [rds]
 [<000003e000439166>] __rds_conn_create+0x22e/0x530 [rds]
 [<000003e0004394c2>] rds_conn_create+0x26/0x34 [rds]
 [<000003e00048f96a>] rds_hs_rx_irq+0xb6/0xf0 [rds_hs]
 [<00000000002d22b0>] qeth_l3_qdio_input_handler+0xcc/0x68c
 [<000000000028c420>] qdio_kick_handler+0xd8/0x1ac
 [<000000000028f10c>] tiqdio_inbound_processing+0x328/0xf4c
 [<000000000004f278>] tasklet_action+0xe8/0x1d8
 [<000000000004eeaa>] __do_softirq+0xf2/0x198
 [<00000000000219b6>] do_softirq+0xaa/0xb0
 [<000000000004f0c6>] irq_exit+0xd6/0xdc
 [<000000000027c204>] do_IRQ+0x158/0x1e4
 [<0000000000028afa>] io_return+0x0/0x8
 [<0000000000025d10>] vtime_stop_cpu+0xe8/0xf8
([<0000000000025c78>] vtime_stop_cpu+0x50/0xf8)
 [<000000000001b6f2>] cpu_idle+0x16e/0x18c
 [<00000000003e3bc4>] start_secondary+0xac/0xb8


Mit freundlichen Grüßen / Kind regards,

Dirk Kirsten

----------------------------------------------------------------------
IBM Deutschland GmbH

Geschäftsführung: Martin Jetter (Vorsitzender),
Reinhard Reschke, Christoph Grandpierre, Matthias Hartmann, Michael Diemer,
Martina Koederitz
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart,
HRB 24938




More information about the rds-devel mailing list