xen-devel
Re: [Xen-devel] Re: fs-backend on -unstable
Patch applied to /usr/src/xen-unstable.hg/tools/ioemu-dir/hw/ide.c.
# cd /usr/src/xen-unstable.hg # find . -name ide.c -print ./stubdom/ioemu/hw/ide.c ./tools/ioemu-remote/hw/ide.c # ls -l ./stubdom/ioemu/hw/ide.c lrwxrwxrwx 1 root src 50 2009-03-26 07:45 ./stubdom/ioemu/hw/ide.c -> /usr/src/xen-unstable.hg//tools/ioemu-dir/hw/ide.c
# make tools # make install-tools # cd stubdom # there is symlink to ./tools/ioemu-remote/ide.c # make # make install
System restarted (just in case). No luck (just same picture as before) under Xen Unstable & Suse's 2.6.27-5
Boris.
--- On Thu, 3/26/09, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote:
From: Stefano Stabellini
<stefano.stabellini@xxxxxxxxxxxxx> Subject: [Xen-devel] Re: fs-backend on -unstable To: "Jody Belka" <lists-xen@xxxxxxxx> Cc: "Samuel Thibault" <samuel.thibault@xxxxxxxxxxxx>, "Jeremy Fitzhardinge" <jeremy@xxxxxxxx>, "Xen-devel" <xen-devel@xxxxxxxxxxxxxxxxxxx> Date: Thursday, March 26, 2009, 6:21 AM
Jody Belka wrote:
> Now, the stub domain isn't actually working for me anyway, even on > non-pvops0, but it is able to talk to the fs-backend at least. To show > what that looks like, I've attached a couple of emails I sent off-list.
There are some known issues that affect stubdoms at the moment, since they involve some changes made on qemu upstream I am trying to find a solution there.
However if you want to test the latest stubdoms you can try this patch, it works for me.
---
diff --git a/hw/ide.c b/hw/ide.c index 7031ba1..a97c78b
100644 --- a/hw/ide.c +++ b/hw/ide.c @@ -1056,10 +1056,11 @@ static int dma_buf_prepare(BMDMAState *bm, int is_write) uint32_t addr; uint32_t size; } prd; - int l, len; + int l, len, n; void *mem; target_phys_addr_t l1; + n = s->nsector <= IDE_DMA_BUF_SECTORS ? s->nsector : IDE_DMA_BUF_SECTORS; qemu_iovec_init(&s->iovec, s->nsector / (TARGET_PAGE_SIZE/512) + 1); s->io_buffer_size = 0; for(;;) { @@ -1082,6 +1083,13 @@ static int dma_buf_prepare(BMDMAState *bm, int is_write) l = bm->cur_prd_len; if (l > 0) { l1 = l; + if (l1 > IDE_DMA_BUF_SECTORS * 512) + l1 = IDE_DMA_BUF_SECTORS * 512; + if (s->io_buffer_size + l1 > IDE_DMA_BUF_SECTORS * 512) { + l1 = IDE_DMA_BUF_SECTORS * 512 -
s->io_buffer_size; + if (!l1) + return s->io_buffer_size != 0; + } mem = cpu_physical_memory_map(bm->cur_prd_addr, &l1, is_write); if (!mem) { break; @@ -1263,6 +1271,8 @@ static void ide_read_dma_cb(void *opaque, int ret) /* launch next transfer */ n = s->nsector; + if (n > IDE_DMA_BUF_SECTORS) + n = IDE_DMA_BUF_SECTORS; s->io_buffer_index = 0; s->io_buffer_size = n * 512; if (dma_buf_prepare(bm, 1) == 0) @@ -1412,6 +1422,8 @@ static void ide_write_dma_cb(void *opaque, int ret) } n = s->nsector; + if (n > IDE_DMA_BUF_SECTORS) + n = IDE_DMA_BUF_SECTORS; s->io_buffer_size = n * 512; /* launch next transfer */ if (dma_buf_prepare(bm, 0) ==
0)
_______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|