Re: [9fans] usb ohci question

2011-02-22 Thread Francisco J Ballesteros
In general, there are more ilocks than needed, out of paranoia.
I don't have the code here now, but you might be right.

thanks

On Tue, Feb 22, 2011 at 5:42 PM,   wrote:
>
>>But I think you found a bug.
>
> Ok, so maybe the first ilock/iunlock pair isn't needed? The controller
> can't see the task descriptors that have been chained on to the
> endpoint until the "tail" element of the endpoint descriptor is set,
> so any potential interrupts during the sequence won't affect anything.
>
> rod
>
>



Re: [9fans] usb ohci question

2011-02-22 Thread rod

>But I think you found a bug.

Ok, so maybe the first ilock/iunlock pair isn't needed? The controller
can't see the task descriptors that have been chained on to the
endpoint until the "tail" element of the endpoint descriptor is set,
so any potential interrupts during the sequence won't affect anything. 

rod



Re: [9fans] usb ohci question

2011-02-22 Thread Philippe Anel


Oh, sorry, I forgot that the page-in operation might require an interrupt
from the disk or network controller in order to reload the page.

Phil;

Le 22/02/2011 16:31, Philippe Anel a écrit :

Hello,

A 'page-in' occurs on page fault exception, which cannot be masked.

Phil;


Le 22/02/2011 16:10, r...@hemiola.co.uk a écrit :

I'm struggling to understand the ins and outs of the usb ohci driver
(usbohci.c) and have a question (well, several).

If one writes to an endpoint, then "epio" gets called. This in turn
does ilock(ctrl) which disables interrupts on my single-processor
machine. Then "epgettd" is called several times to allocate transfer
descriptors. Each call to epgettd copies a portion from the user space
buffer which was passed as a parameter to "epio".

What happens here if the user space buffer is in a page which is not
present? Is it possible for a page-in to happen even when interrupts
are disabled by the ilock?

Thanks for any insight.

rod











Re: [9fans] usb ohci question

2011-02-22 Thread Philippe Anel

Hello,

A 'page-in' occurs on page fault exception, which cannot be masked.

Phil;


Le 22/02/2011 16:10, r...@hemiola.co.uk a écrit :

I'm struggling to understand the ins and outs of the usb ohci driver
(usbohci.c) and have a question (well, several).

If one writes to an endpoint, then "epio" gets called. This in turn
does ilock(ctrl) which disables interrupts on my single-processor
machine. Then "epgettd" is called several times to allocate transfer
descriptors. Each call to epgettd copies a portion from the user space
buffer which was passed as a parameter to "epio".

What happens here if the user space buffer is in a page which is not
present? Is it possible for a page-in to happen even when interrupts
are disabled by the ilock?

Thanks for any insight.

rod







Re: [9fans] usb ohci question

2011-02-22 Thread Francisco J Ballesteros
I'll look again (just did).
But I think you found a bug.

On Tue, Feb 22, 2011 at 4:10 PM,   wrote:
> I'm struggling to understand the ins and outs of the usb ohci driver
> (usbohci.c) and have a question (well, several).
>
> If one writes to an endpoint, then "epio" gets called. This in turn
> does ilock(ctrl) which disables interrupts on my single-processor
> machine. Then "epgettd" is called several times to allocate transfer
> descriptors. Each call to epgettd copies a portion from the user space
> buffer which was passed as a parameter to "epio".
>
> What happens here if the user space buffer is in a page which is not
> present? Is it possible for a page-in to happen even when interrupts
> are disabled by the ilock?
>
> Thanks for any insight.
>
> rod
>
>