Re: IDE booting problems with 2.5.23

Martin Dalecki
2002-06-20T11:22:23Z

Użytkownik Jens Axboe napisał:
> On Thu, Jun 20 2002, Martin Dalecki wrote:
>
>>>BTW, I see you renamed the flags to channel->active. I think that's a
>>>bit misleading, can't you just call it ->state or ->flags (or
>>>->state_flags? :-)
>>
>>My reasoning behind this is - state is for device state
>>register and active is well for the state of the driver. All the other
>>names seemed for me to be too opaque for the purpose of it or already used.
>>flags souns static to me.
>>And you have to agree that it is *very* special
>>purpose if you look at the IDE_BUSY bit.
>>And finally - I took this name from the FreeBSD
>>code to make it look a bit more similar.
>
>
> How about busy_flags or busy_state, then? Active sounds like a bool to
> me, and frankly what FreeBSD uses really has no bearing on what we
> should choose :-)
>
>
>>Another tought:
>>
>>- We will have then an IDE_DMA which will indicate clearly
>>that we are expecting some async event for the sake of DMA.
>
>
> Right
>
>
>>But we have IDE_BUSY overloaded with both:
>>
>>- Flagging that we are expecting an IRQ to arrive during
>> PIO io (in conjencture with ->handler != NULL).
>>
>>- Flagging that the do_request code path should be reentered
>> immediately or is busy.
>>
>>I thihink its hard but worth it to split the semantic overload.
>>In esp. a very fragile change. But I *feel* like it would
>>be worth it. Suggestions opinnions?
>
>
> Keep IDE_BUSY as saying 'we are busy handling an event', ie expecting an
> interrupt at some point. This is what is serializing access to the
> channel, not the spin lock btw. Only one 'user' can flag the channel as
> busy and then proceed to setup a command etc.
>
> I dunno about your #2, that sounds a bit confusing.

I try to clarify a bit. After looking closer at the code I noticed
that IDE_BUSY is not just idicating that we should not
reenter the request handling. It is used to indicate that
we should reenter the request handling immediately after return
and it is used to indicate that a PIO transfer is in progress.
What I think about is to invent IDE_PIO as a first cut, which
would serve the same purpose as IDE_DMA for PIO transfers.
In esp. indicating that there is PIO IO in progress waiting for
an IRQ to happen. Stalling the request queue reentry should
be a different sotry then this I think. Hope this makes it more
clear.

>