|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Windows Bug Check 0x101 issue
Kouya Shimura writes ("Re: [Xen-devel] Windows Bug Check 0x101 issue"):
> Samuel Thibault writes:
> > Ian Jackson, le Tue 25 Mar 2008 11:28:32 +0000, a écrit :
> > > The other is that the IDE flush necessarily blocks.
> >
> > What do you mean by that? In a real machine, the processor doesn't
> > block while the flush is being done, and the OS just expects to see an
> > irq some time after. In that regard his patch should work fine.
I must have misread the IDE spec I was reading.
> > That said it can't be applied as is because of the other points you
> > raised, of course.
>
> Anyway, I remade the patch as you point out. Is it enough?
This one is much better but I still have a comment ...
> To be honest, I'm skeptical about the necessity of the flush
> for a *emulated* IDE disk but shared SCSI disk.
I'm not sure I follow. (What do you mean by `shared SCSI disk'?
We're discussing the IDE driver here ...)
> +BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs,
> + BlockDriverCompletionFunc *cb, void *opaque)
> +{
> + BlockDriver *drv = bs->drv;
> +
> + if (!drv)
> + return NULL;
> + if (!drv->bdrv_aio_flush)
> + return NULL;
> +
> + return drv->bdrv_aio_flush(bs, cb, opaque);
> +}
This function should emulate the asynchronous operation with the
synchronous one: so it should call the synchronous ->bdrv_flush and
then call the callback.
That will make it work like bdrv_aio_{read,write}. (Although there is
I think no need to replicate the baroque bdrv_aio_{read,write}_em
emulation methods; that's an overly-complex way to do things.)
If you do that then callers who get NULL from bdrv_aio_flush will know
that it is actually an error. Your current code, as well as needing
the non-aio emulation at each call site, will try the fallback after
errors as well as lack of aio support.
> +static void ide_flush_cb(void *opaque, int ret)
> +{
> + IDEState *s = opaque;
> +
> + s->status = READY_STAT;
> + ide_set_irq(s);
You need to check the return value (ret) and set an appropriate IDE
error status if the operation failed. ide_abort_command may be of
some use.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Windows Bug Check 0x101 issue, Kouya Shimura
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Samuel Thibault
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Keir Fraser
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Kouya Shimura
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Keir Fraser
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Samuel Thibault
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Kouya Shimura
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Samuel Thibault
- Re: [Xen-devel] Windows Bug Check 0x101 issue,
Ian Jackson <=
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Alan Cox
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Alan Cox
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Kouya Shimura
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Alan Cox
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Alan Cox
- Re: [Xen-devel] Windows Bug Check 0x101 issue, Ian Jackson
|
|
|
|
|