[ofw] [Patch][Core] Fix at IRP cancellation mechanism

Tzachi Dar tzachid at mellanox.co.il
Mon Jun 21 10:59:17 PDT 2010


I must say that the user and kernel mode are indeed using objects with the same names, but with very different semantics.

2 examples:
1) The CL_SPINLOCK: on the user it is reentrant, on the kernel not. On the user, the caller might sleep (can protect long operations) on the kernel sleeping is not allowed.
2) CL_TIMER. On the user, the start waits for the other timer operation to end, on the kernel it does not. On the user the stop waits for the callback to return (but not always...) on the kernel it doesn't wait. As a matter of fact, in the kernel code, after calling stop, one can not know if the callback has executed already or not.

I must say that for the long term we need to split the joint code.

Thanks
Tzachi

-----Original Message-----
From: ofw-bounces at lists.openfabrics.org [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Hefty, Sean
Sent: Monday, June 21, 2010 6:59 PM
To: Leonid Keller; Smith, Stan; Alex Naslednikov; Fab Tillier
Cc: ofw at lists.openfabrics.org; Uri Habusha
Subject: Re: [ofw] [Patch][Core] Fix at IRP cancellation mechanism

Can we please completely separate the IBAL kernel code from user space?

> +#ifdef CL_KERNEL
> 
> 
> 
> +typedef struct _al_dev_open_context al_dev_open_context_t;
> 
> 
> 
> +typedef struct _al_csq
> 
> +{
> 
> +             IO_CSQ
> csq;
> 
> +             KSPIN_LOCK
> lock;
> 
> +             LIST_ENTRY
> queue;
> 
> +             al_dev_open_context_t                              *dev_ctx;
> 
> +} al_csq_t;
> 
> +
> 
> +#endif
_______________________________________________
ofw mailing list
ofw at lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw



More information about the ofw mailing list