Thread (1 message) 1 message, 1 author, 2007-12-10

Re: [PATCH] IB/ehca: Serialize HCA-related hCalls on POWER5

From: Joachim Fenkes <hidden>
Date: 2007-12-10 17:57:57
Also in: lkml

Hi, guys,
We're taking this to the firmware architects at the moment, but they're 
not 
very fond of the idea of reporting the absence of bugs through 
capability 
flags, as this could quickly lead to the exhaustion of flag bits. We'll 
let 
the discussion stew for a bit, but if we don't get this flag, we'll have 
to 
resort to the CPU features.
The architects have spoken, and we're getting a capability flag for this. 
I'll repost my patch with new autodetection code that doesn't involve 
checking the processor version.
 
quoted
 > Regarding the performance problem, have you checked whether 
converting all
quoted
 > your spin_lock_irqsave to spin_lock/spin_lock_irq improves your 
performance
quoted
 > on the older machines? Maybe it's already fast enough that way.

It does seem that the only places that the hcall_lock is taken also
use msleep, so they must always be in process context.  So you can
safely just use spin_lock(), right?
As Arnd said, there are hCalls that will never return H_LONG_BUSY_*, 
such as 
H_QUERY_PORT and chums, so they will never sleep. The surrounding 
functions, 
though, are not prepared to be called from interrupt context (GFP_KERNEL 
comes
to mind), so I agree that a simple spin_lock() will suffice. Thanks, 
Arnd, for
pointing this out.
As I pointed out in my earlier mail, there's still an issue with 
map_phys_fmr possibly sleeping. Let's keep the irqsave for the time being 
and revisit this part once we find a solution to map_phys_fmr.

Regards,
  Joachim
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help