[Qemu-devel] some ROMs questions
In the recent 2.12-rc1 tarball, there are the following things present: roms/u-boot-sam460ex/tools/updater/stubs.c - it is some strange symlink pointing to a strange place, probably should be removed? When making u-boot-am460ex image, in roms/Makefile, we do a plain copy, while 5 lines above, u-boot image is being stripped on copy. Should we perform strip for u-boot-am460ex image too, if not only to be consistent? BTW, can't u-boot-am460ex image be made from regular u-boot sources, maybe with an additional board added? :) Also, skiboot image can't be built from roms/skiboot in the source tarball, it fails because there's no .version file present in roms/skiboot/ directory, but this file is present in the git repository (submodule). Perhaps this .version file is wrongly removed when making release tarball? Maybe these trivial issues can be fixed for 2.12 release? Thanks, /mjt
Re: [Qemu-devel] [PATCH v2] i386: add KnightsMill cpu model
Ping ;-) Regards, Boqun On Tue, Mar 20, 2018 at 08:08:15AM +0800, Boqun Feng wrote: > A new cpu model called "KnightsMill" is added to model Knights Mill > processors. Compared to "Skylake-Server" cpu model, the following > features are added: > > avx512_4vnniw avx512_4fmaps avx512pf avx512er avx512_vpopcntdq > > and the following features are removed: > > pcid invpcid clflushopt avx512dq avx512bw clwb smap rtm mpx > xsavec xgetbv1 hle > > Signed-off-by: Boqun Feng> --- > v1 --> v2: > > * Change the model name to "KnightsMill" as per Daniel's > suggestion. > > target/i386/cpu.c | 42 ++ > 1 file changed, 42 insertions(+) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 2c04645ceac9..c484afdb7023 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -1795,6 +1795,48 @@ static X86CPUDefinition builtin_x86_defs[] = { > .xlevel = 0x8008, > .model_id = "Intel Xeon Processor (Skylake, IBRS)", > }, > +{ > +.name = "KnightsMill", > +.level = 0xd, > +.vendor = CPUID_VENDOR_INTEL, > +.family = 6, > +.model = 133, > +.stepping = 0, > +.features[FEAT_1_EDX] = > +CPUID_VME | CPUID_SS | CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | > +CPUID_MMX | CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV > | > +CPUID_MCA | CPUID_PGE | CPUID_MTRR | CPUID_SEP | CPUID_APIC | > +CPUID_CX8 | CPUID_MCE | CPUID_PAE | CPUID_MSR | CPUID_TSC | > +CPUID_PSE | CPUID_DE | CPUID_FP87, > +.features[FEAT_1_ECX] = > +CPUID_EXT_AVX | CPUID_EXT_XSAVE | CPUID_EXT_AES | > +CPUID_EXT_POPCNT | CPUID_EXT_X2APIC | CPUID_EXT_SSE42 | > +CPUID_EXT_SSE41 | CPUID_EXT_CX16 | CPUID_EXT_SSSE3 | > +CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSE3 | > +CPUID_EXT_TSC_DEADLINE_TIMER | CPUID_EXT_FMA | CPUID_EXT_MOVBE | > +CPUID_EXT_F16C | CPUID_EXT_RDRAND, > +.features[FEAT_8000_0001_EDX] = > +CPUID_EXT2_LM | CPUID_EXT2_PDPE1GB | CPUID_EXT2_RDTSCP | > +CPUID_EXT2_NX | CPUID_EXT2_SYSCALL, > +.features[FEAT_8000_0001_ECX] = > +CPUID_EXT3_ABM | CPUID_EXT3_LAHF_LM | CPUID_EXT3_3DNOWPREFETCH, > +.features[FEAT_7_0_EBX] = > +CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AVX2 > | > +CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ERMS | > +CPUID_7_0_EBX_RDSEED | CPUID_7_0_EBX_ADX | CPUID_7_0_EBX_AVX512F > | > +CPUID_7_0_EBX_AVX512CD | CPUID_7_0_EBX_AVX512PF | > +CPUID_7_0_EBX_AVX512ER, > +.features[FEAT_7_0_ECX] = > +CPUID_7_0_ECX_AVX512_VPOPCNTDQ, > +.features[FEAT_7_0_EDX] = > +CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS, > +.features[FEAT_XSAVE] = > +CPUID_XSAVE_XSAVEOPT, > +.features[FEAT_6_EAX] = > +CPUID_6_EAX_ARAT, > +.xlevel = 0x8008, > +.model_id = "Intel Xeon Phi Processor (Knights Mill)", > +}, > { > .name = "Opteron_G1", > .level = 5, > -- > 2.16.1 >
Re: [Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 267f42a5-b7ce-379e-ffd1-f2611393d...@web.de Subject: [Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 665d663f3d e1000e: Do not auto-clear ICR bits which aren't set in EIAC === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-9hyebnaz/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-9hyebnaz/src' GEN /var/tmp/patchew-tester-tmp-9hyebnaz/src/docker-src.2018-04-01-17.24.18.15141/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-9hyebnaz/src/docker-src.2018-04-01-17.24.18.15141/qemu.tar.vroot'... done. Checking out files: 13% (841/6066) Checking out files: 14% (850/6066) Checking out files: 15% (910/6066) Checking out files: 16% (971/6066) Checking out files: 17% (1032/6066) Checking out files: 18% (1092/6066) Checking out files: 19% (1153/6066) Checking out files: 19% (1172/6066) Checking out files: 20% (1214/6066) Checking out files: 21% (1274/6066) Checking out files: 22% (1335/6066) Checking out files: 23% (1396/6066) Checking out files: 24% (1456/6066) Checking out files: 25% (1517/6066) Checking out files: 26% (1578/6066) Checking out files: 27% (1638/6066) Checking out files: 28% (1699/6066) Checking out files: 29% (1760/6066) Checking out files: 30% (1820/6066) Checking out files: 30% (1860/6066) Checking out files: 31% (1881/6066) Checking out files: 32% (1942/6066) Checking out files: 33% (2002/6066) Checking out files: 34% (2063/6066) Checking out files: 35% (2124/6066) Checking out files: 36% (2184/6066) Checking out files: 37% (2245/6066) Checking out files: 38% (2306/6066) Checking out files: 39% (2366/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 44% (2693/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 46% (2815/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 52% (3203/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 57% (3463/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 68% (4142/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 74% (4507/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 87% (5326/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97%
Re: [Qemu-devel] [PATCH v2 04/10] migration: detect compression and decompression errors
On Fri, Mar 30, 2018 at 11:11:27AM +0800, Xiao Guangrong wrote: > > > On 03/29/2018 12:25 PM, Peter Xu wrote: > > On Thu, Mar 29, 2018 at 11:51:03AM +0800, Xiao Guangrong wrote: > > > > > > > > > On 03/28/2018 05:59 PM, Peter Xu wrote: > > > > On Tue, Mar 27, 2018 at 05:10:37PM +0800, guangrong.x...@gmail.com > > > > wrote: > > > > > > > > [...] > > > > > > > > > -static int compress_threads_load_setup(void) > > > > > +static int compress_threads_load_setup(QEMUFile *f) > > > > >{ > > > > >int i, thread_count; > > > > > @@ -2665,6 +2685,7 @@ static int compress_threads_load_setup(void) > > > > >} > > > > >decomp_param[i].stream.opaque = _param[i]; > > > > > +decomp_param[i].file = f; > > > > > > > > On the source side the error will be set via: > > > > > > > > qemu_file_set_error(migrate_get_current()->to_dst_file, blen); > > > > > > > > Maybe we can do similar things using migrate_incoming_get_current() to > > > > avoid caching the QEMUFile multiple times? > > > > > > > > > > I have considered it, however, it can not work as the @file used by ram > > > loader is not the file got from migrate_incoming_get_current() under some > > > cases. > > > > > > For example, in colo_process_incoming_thread(), the file passed to > > > qemu_loadvm_state() is a internal buffer and it is not easy to switch it > > > to incoming file. > > > > I see. How about cache it in a global variable? We have these > > already: > > > > thread_count = migrate_decompress_threads(); > > decompress_threads = g_new0(QemuThread, thread_count); > > decomp_param = g_new0(DecompressParam, thread_count); > > ... > > > > IMHO we can add a new one too, at least we don't cache it multiple > > times (after all decomp_param[i]s are global variables too). > > > > Nice, that's good to me. Will add your Reviewed-by on this patch > as well if you do not mind. :) Yes, please. :) Thanks, -- Peter Xu
[Qemu-devel] [PATCH] scsi-block: Handle error from host devices
The callback of blk_aio_ioctl is not sensible to SCSI errors, so werror=stop doesn't work if ioctl returns 0 but the scsi status is error. Peek at the sg_io_hdr_t fields and amend ret to fix that. Signed-off-by: Fam Zheng--- hw/scsi/scsi-disk.c | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index f5ab767ab5..2c43830586 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -2651,10 +2651,26 @@ typedef struct SCSIBlockReq { /* Selected bytes of the original CDB, copied into our own CDB. */ uint8_t cmd, cdb1, group_number; +BlockCompletionFunc *cb; +void *cb_opaque; + /* CDB passed to SG_IO. */ uint8_t cdb[16]; } SCSIBlockReq; +static void scsi_block_sgio_cb(void *opaque, int ret) +{ +SCSIBlockReq *req = opaque; + +if (!ret && +(req->io_header.status || + req->io_header.host_status || + req->io_header.driver_status)) { +ret = -EIO; +} +req->cb(req->cb_opaque, ret); +} + static BlockAIOCB *scsi_block_do_sgio(SCSIBlockReq *req, int64_t offset, QEMUIOVector *iov, int direction, @@ -2734,7 +2750,9 @@ static BlockAIOCB *scsi_block_do_sgio(SCSIBlockReq *req, io_header->usr_ptr = r; io_header->flags |= SG_FLAG_DIRECT_IO; -aiocb = blk_aio_ioctl(s->qdev.conf.blk, SG_IO, io_header, cb, opaque); +req->cb_opaque = opaque; +aiocb = blk_aio_ioctl(s->qdev.conf.blk, SG_IO, io_header, + scsi_block_sgio_cb, req); assert(aiocb != NULL); return aiocb; } -- 2.14.3
Re: [Qemu-devel] [RFC] About 9pfs support "O_DIRECT + aio"?
On 30/03/2018 10:53, jiangyiwen wrote: > Currently, I found virtio-9p in VirtFS don't support "O_DIRECT + aio" > mode, both v9fs and qemu. So when user use "O_DIRECT + aio" mode and > increase iodepths, they can't get higher IOPS. > > I want to know why v9fs don't implement this mode? And I will try to > implement this mode from now on. Can you explain? I think 9p has support for direct I/O in Linux. See v9fs_direct_IO in fs/9p/vfs_addr.c. Paolo
Re: [Qemu-devel] [qemu-web PATCH] download: Add instructions for MacPorts
On 01/04/2018 18:22, Rainer Müller wrote: > Signed-off-by: Rainer Müller> --- > _download/macos.md | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/_download/macos.md b/_download/macos.md > index dbb312c..06aa811 100644 > --- a/_download/macos.md > +++ b/_download/macos.md > @@ -1,6 +1,10 @@ > -QEMU can be installed from Homebrew: > +QEMU can be installed from Homebrew: > > brew install qemu > > +QEMU can be installed from MacPorts: > + > +sudo port install qemu > + > QEMU requires Mac OS X 10.5 or later, but it is recommended > to use Mac OS X 10.7 or later. > Thanks for the patch! I'm travelling but I will apply it as soon as I can. Paolo
Re: [Qemu-devel] Debugging on HAXM
On 01/04/2018 17:35, Alexandro Sanchez Bach wrote: > > I've noticed that `gdb_breakpoint_insert` only considers KVM so far. My > question is: Has anyone planned adding debugging support to HAXM? Or is > anyone actively working on QEMU's HAXM frontend at all? If not, I would like > to work on it myself. Are there any guidelines or things I should take into > consideration to work on this accelerator (pinging Anthony and Glauber)? The main person working on HAXM is Yu Ning. Anthony and Glauber are only listed because they are the authors of the KVM support (and HAXM support in turn is based on KVM). > Would it be more reasonable to add debugging support to HAXM [1] directly > instead of trying to use the existing APIs from QEMU to achieve the same > thing (I was thinking in patching memory, e.g. with `hlt` instructions, to > trigger VM exits)? That would probably be less "hackish", but harder too. It would also let you support singlestep and hardware breakpoints---they are often better than software breakpoints for debugging if you can live with the limit of four breakpoints. Yu Ning, what do you think? Paolo
Re: [Qemu-devel] [PATCH v4 5/8] migration/ram: ensure write persistence on loading zero pages to PMEM
On 03/29/18 19:59 +0100, Dr. David Alan Gilbert wrote: > * Haozhong Zhang (haozhong.zh...@intel.com) wrote: > > When loading a zero page, check whether it will be loaded to > > persistent memory If yes, load it by libpmem function > > pmem_memset_nodrain(). Combined with a call to pmem_drain() at the > > end of RAM loading, we can guarantee all those zero pages are > > persistently loaded. > > > > Depending on the host HW/SW configurations, pmem_drain() can be > > "sfence". Therefore, we do not call pmem_drain() after each > > pmem_memset_nodrain(), or use pmem_memset_persist() (equally > > pmem_memset_nodrain() + pmem_drain()), in order to avoid unnecessary > > overhead. > > > > Signed-off-by: Haozhong Zhang> > I'm still thinking this is way too invasive; especially the next patch > that touches qemu_file. > > One thing that would help a little, but not really enough, would be > to define a : > > struct MemOps { > void (*copy)(like a memcpy); > void (*set)(like a memset); > } > > then you could have: > > struct MemOps normalops = {memcpy, memset}; > struct MemOps pmem_nodrain_ops = { pmem_memcopy_nodrain, pmem_memset_nodrain > }; > > then things like ram_handle_compressed would be: > > void ram_handle_compressed(void *host, uint8_t ch, uint64_t size, const > struct MemOps *mem) > { > if (ch != 0 || !is_zero_range(host, size)) { > mem->set(host, ch,size); > } > } > > which means the change is pretty tiny to each function. This looks much better than mine. I'm also considering Stefan's comment that flushing at the end of all memory migration rather than invasively change every types of copy in migration stream. We are going to perform some microbenchmarks on the real hardware, and then decide which way to take. > > > diff --git a/migration/rdma.c b/migration/rdma.c > > index da474fc19f..573bcd2cb0 100644 > > --- a/migration/rdma.c > > +++ b/migration/rdma.c > > @@ -3229,7 +3229,7 @@ static int qemu_rdma_registration_handle(QEMUFile *f, > > void *opaque) > > host_addr = block->local_host_addr + > > (comp->offset - block->offset); > > > > -ram_handle_compressed(host_addr, comp->value, comp->length); > > +ram_handle_compressed(host_addr, comp->value, comp->length, > > false); > > Is that right? Is RDMA not allowed to work on PMEM? > (and anyway this call is a normal clear rather than an actual RDMA op). > Well, this patch exclude RMDA case intentionally. Once it's clear how to guarantee the persistence of remote PMEM write in RDMA, we will propose additional patch to add support in QEMU. Thanks, Haozhong > Dave > > > break; > > > > case RDMA_CONTROL_REGISTER_FINISHED: > > diff --git a/stubs/pmem.c b/stubs/pmem.c > > index 03d990e571..a65b3bfc6b 100644 > > --- a/stubs/pmem.c > > +++ b/stubs/pmem.c > > @@ -17,3 +17,12 @@ void *pmem_memcpy_persist(void *pmemdest, const void > > *src, size_t len) > > { > > return memcpy(pmemdest, src, len); > > } > > + > > +void *pmem_memset_nodrain(void *pmemdest, int c, size_t len) > > +{ > > +return memset(pmemdest, c, len); > > +} > > + > > +void pmem_drain(void) > > +{ > > +} > > -- > > 2.14.1 > > > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Re: [Qemu-devel] [PATCH v4 0/8] nvdimm: guarantee persistence of QEMU writes to persistent memory
On 03/29/18 20:12 +0100, Dr. David Alan Gilbert wrote: > * Haozhong Zhang (haozhong.zh...@intel.com) wrote: > > > > > Post-copy with NVDIMM currently fails with message "Postcopy on shared > > RAM (...) is not yet supported". Is it enough? > > What does it say now that postcopy-shared support is in? > I'll check it later. Haozhong
Re: [Qemu-devel] [PATCH v2] target/xtensa: linux-user: fix sysv IPC structures
Hi, This series failed docker-quick@centos6 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401203640.31617-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH v2] target/xtensa: linux-user: fix sysv IPC structures === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' d52a858b2c target/xtensa: linux-user: fix sysv IPC structures === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-2mmj6o76/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD centos6 make[1]: Entering directory '/var/tmp/patchew-tester-tmp-2mmj6o76/src' GEN /var/tmp/patchew-tester-tmp-2mmj6o76/src/docker-src.2018-04-01-16.54.26.28713/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-2mmj6o76/src/docker-src.2018-04-01-16.54.26.28713/qemu.tar.vroot'... done. Checking out files: 46% (2819/6066) Checking out files: 47% (2852/6066) Checking out files: 47% (2865/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-2mmj6o76/src/docker-src.2018-04-01-16.54.26.28713/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-2mmj6o76/src/docker-src.2018-04-01-16.54.26.28713/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-2mmj6o76/src/docker-src.2018-04-01-16.54.26.28713/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-quick in qemu:centos6 tar: Unexpected EOF in archive tar: rmtlseek not stopped at a record boundary tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Packages installed: SDL-devel-1.2.14-7.el6_7.1.x86_64 bison-2.4.1-5.el6.x86_64 bzip2-devel-1.0.5-7.el6_0.x86_64 ccache-3.1.6-2.el6.x86_64 csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64 flex-2.5.35-9.el6.x86_64 gcc-4.4.7-18.el6.x86_64 gettext-0.17-18.el6.x86_64 git-1.7.1-9.el6_9.x86_64 glib2-devel-2.28.8-9.el6.x86_64 libepoxy-devel-1.2-3.el6.x86_64 libfdt-devel-1.4.0-1.el6.x86_64
Re: [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases
[/var]/tmp full due to some jobs not cleaning well their workspaces? On 03/31/2018 06:04 AM, no-re...@patchew.org wrote: > Hi, > > This series failed docker-build@min-glib build test. Please find the testing > commands and > their output below. If you have Docker installed, you can probably reproduce > it > locally. > > N/A. Internal error while reading log file > > > > --- > Email generated automatically by Patchew [http://patchew.org/]. > Please send your feedback to patchew-de...@redhat.com >
Re: [Qemu-devel] [PATCH] build: Silence dtc directory creation
On 04/01/2018 08:23 AM, Jan Kiszka wrote: > From: Jan Kiszka> > Align with other mkdir calls. > > Signed-off-by: Jan Kiszka Reviewed-by: Philippe Mathieu-Daudé > --- > Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 727ef118f3..fc6f21001f 100644 > --- a/Makefile > +++ b/Makefile > @@ -485,7 +485,7 @@ subdir-dtc: .git-submodule-status dtc/libfdt dtc/tests > $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) > CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" > ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) > libfdt/libfdt.a,) > > dtc/%: .git-submodule-status > - mkdir -p $@ > + @mkdir -p $@ > > # Overriding CFLAGS causes us to lose defines added in the sub-makefile. > # Not overriding CFLAGS leads to mis-matches between compilation modes. > signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix fadvise64 call
Hi, This series failed docker-quick@centos6 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401221253.1382-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix fadvise64 call === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' bc506cb3bf target/xtensa: linux-user: fix fadvise64 call === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-yj0qscut/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD centos6 make[1]: Entering directory '/var/tmp/patchew-tester-tmp-yj0qscut/src' GEN /var/tmp/patchew-tester-tmp-yj0qscut/src/docker-src.2018-04-01-18.19.58.27875/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-yj0qscut/src/docker-src.2018-04-01-18.19.58.27875/qemu.tar.vroot'... done. Checking out files: 44% (2683/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 52% (3207/6066) Checking out files: 53% (3215/6066) Checking out files: 53% (3234/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 75% (4601/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-yj0qscut/src/docker-src.2018-04-01-18.19.58.27875/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-yj0qscut/src/docker-src.2018-04-01-18.19.58.27875/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-yj0qscut/src/docker-src.2018-04-01-18.19.58.27875/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-quick in qemu:centos6 tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Packages installed: SDL-devel-1.2.14-7.el6_7.1.x86_64 bison-2.4.1-5.el6.x86_64 bzip2-devel-1.0.5-7.el6_0.x86_64 ccache-3.1.6-2.el6.x86_64 csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64 flex-2.5.35-9.el6.x86_64 gcc-4.4.7-18.el6.x86_64 gettext-0.17-18.el6.x86_64
[Qemu-devel] [PATCH] target/xtensa: linux-user: fix fadvise64 call
fadvise64_64 on xtensa passes advice as the second argument and so must be handled similar to PPC. This fixes glibc testsuite tests posix/tst-posix_fadvise and posix/tst-posix_fadvise64. Signed-off-by: Max Filippov--- linux-user/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 924fd68efcdd..5ef517613577 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11509,7 +11509,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, #ifdef TARGET_NR_fadvise64_64 case TARGET_NR_fadvise64_64: -#if defined(TARGET_PPC) +#if defined(TARGET_PPC) || defined(TARGET_XTENSA) /* 6 args: fd, advice, offset (high, low), len (high, low) */ ret = arg2; arg2 = arg3; -- 2.11.0
Re: [Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC
Hi, This series failed docker-build@min-glib build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 267f42a5-b7ce-379e-ffd1-f2611393d...@web.de Subject: [Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-build@min-glib === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 665d663f3d e1000e: Do not auto-clear ICR bits which aren't set in EIAC === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-0v9s6yo6/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD min-glib make[1]: Entering directory '/var/tmp/patchew-tester-tmp-0v9s6yo6/src' GEN /var/tmp/patchew-tester-tmp-0v9s6yo6/src/docker-src.2018-04-01-17.32.05.20960/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-0v9s6yo6/src/docker-src.2018-04-01-17.32.05.20960/qemu.tar.vroot'... done. Checking out files: 42% (2568/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 45% (2730/6066) Checking out files: 45% (2751/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 56% (3430/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-0v9s6yo6/src/docker-src.2018-04-01-17.32.05.20960/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-0v9s6yo6/src/docker-src.2018-04-01-17.32.05.20960/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-0v9s6yo6/src/docker-src.2018-04-01-17.32.05.20960/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-build in qemu:min-glib tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Environment variables: HOSTNAME=0696834df35f MAKEFLAGS= -j8 J=8 CCACHE_DIR=/var/tmp/ccache EXTRA_CONFIGURE_OPTS= V= SHOW_ENV=1
Re: [Qemu-devel] [PATCH] e1000e: Prevent MSI/MSI-X storms
Hi, This series failed docker-quick@centos6 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 79199357-38dc-4a2a-6e67-e80235448...@web.de Subject: [Qemu-devel] [PATCH] e1000e: Prevent MSI/MSI-X storms === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 538866e88a e1000e: Prevent MSI/MSI-X storms === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-z8oqsq50/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD centos6 make[1]: Entering directory '/var/tmp/patchew-tester-tmp-z8oqsq50/src' GEN /var/tmp/patchew-tester-tmp-z8oqsq50/src/docker-src.2018-04-01-17.30.07.19558/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-z8oqsq50/src/docker-src.2018-04-01-17.30.07.19558/qemu.tar.vroot'... done. Checking out files: 31% (1920/6066) Checking out files: 32% (1942/6066) Checking out files: 33% (2002/6066) Checking out files: 34% (2063/6066) Checking out files: 35% (2124/6066) Checking out files: 36% (2184/6066) Checking out files: 37% (2245/6066) Checking out files: 38% (2306/6066) Checking out files: 39% (2366/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 45% (2730/6066) Checking out files: 45% (2754/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 91% (5559/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-z8oqsq50/src/docker-src.2018-04-01-17.30.07.19558/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-z8oqsq50/src/docker-src.2018-04-01-17.30.07.19558/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-z8oqsq50/src/docker-src.2018-04-01-17.30.07.19558/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-quick in
[Qemu-devel] Debugging on HAXM
Hello, A bit of context: I'm working on a QEMU fork adding support for PlayStation 4 hardware. It's still in development and debugging kernel drivers has become everyday work. While TCG supports debugging, it cannot handle various extensions like AVX/AVX2 that are extensively used by the guest applications and performance has become quite a problem. This system is closed source and wasn't built with kernel debugging support, so debugging it "from the outside" is the only possibility and hence why debugging on accelerators (specially HAXM/WHPX) has become absolutely necessary for my project. I've noticed that `gdb_breakpoint_insert` only considers KVM so far. My question is: Has anyone planned adding debugging support to HAXM? Or is anyone actively working on QEMU's HAXM frontend at all? If not, I would like to work on it myself. Are there any guidelines or things I should take into consideration to work on this accelerator (pinging Anthony and Glauber)? Would it be more reasonable to add debugging support to HAXM [1] directly instead of trying to use the existing APIs from QEMU to achieve the same thing (I was thinking in patching memory, e.g. with `hlt` instructions, to trigger VM exits)? Just want to hear your thoughts on the matter. :-) Cheers, Alexandro Sanchez [1] https://github.com/intel/haxm/
[Qemu-devel] [PATCH] target/i386: Fix andn instruction
In commit 7073fbada733c8d10992f00772c9b9299d740e9b, the `andn` instruction was implemented via `tcg_gen_andc` but passes the operands in the wrong order: - X86 defines `andn dest,src1,src2` as: dest = ~src1 & src2 - TCG defines `andc dest,src1,src2` as: dest = src1 & ~src2 I have also attached a simple test which shows the issue: > user@ubuntu:~/Software$ ./a.out > F000 > user@ubuntu:~/Software$ qemu/x86_64-linux-user/qemu-x86_64 -cpu max a.out > 000F This patch fixes the problem by simply swapping the order of the two last arguments in `tcg_gen_andc_tl`. Signed-off-by: Alexandro Sanchez BachCc: qemu-sta...@nongnu.org Reported-by: Alexandro Sanchez Bach diff --git a/target/i386/translate.c b/target/i386/translate.c index 0135415d92..3b7ce9232e 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -3802,7 +3802,7 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b, } ot = mo_64_32(s->dflag); gen_ldst_modrm(env, s, modrm, ot, OR_TMP0, 0); -tcg_gen_andc_tl(cpu_T0, cpu_regs[s->vex_v], cpu_T0); +tcg_gen_andc_tl(cpu_T0, cpu_T0, cpu_regs[s->vex_v]); gen_op_mov_reg_v(ot, reg, cpu_T0); gen_op_update1_cc(); set_cc_op(s, CC_OP_LOGICB + ot); #include #include int main(void) { uint32_t ret = 0; __asm ( "mov $0xFF00, %%ecx\n" "mov $0x0F0F, %%eax\n" "andn %%ecx, %%eax, %%ecx\n" "mov %%ecx, %0\n" : "=r" (ret)); printf("%08X\n", ret); return 0; }
[Qemu-devel] [qemu-web PATCH] download: Add instructions for MacPorts
Signed-off-by: Rainer Müller--- _download/macos.md | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_download/macos.md b/_download/macos.md index dbb312c..06aa811 100644 --- a/_download/macos.md +++ b/_download/macos.md @@ -1,6 +1,10 @@ -QEMU can be installed from Homebrew: +QEMU can be installed from Homebrew: brew install qemu +QEMU can be installed from MacPorts: + +sudo port install qemu + QEMU requires Mac OS X 10.5 or later, but it is recommended to use Mac OS X 10.7 or later. -- 2.16.3
Re: [Qemu-devel] [PATCH] e1000e: Prevent MSI/MSI-X storms
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 79199357-38dc-4a2a-6e67-e80235448...@web.de Subject: [Qemu-devel] [PATCH] e1000e: Prevent MSI/MSI-X storms === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 538866e88a e1000e: Prevent MSI/MSI-X storms === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-hise4j7c/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-hise4j7c/src' GEN /var/tmp/patchew-tester-tmp-hise4j7c/src/docker-src.2018-04-01-17.26.36.16621/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-hise4j7c/src/docker-src.2018-04-01-17.26.36.16621/qemu.tar.vroot'... done. Checking out files: 44% (2717/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 77% (4693/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-hise4j7c/src/docker-src.2018-04-01-17.26.36.16621/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-hise4j7c/src/docker-src.2018-04-01-17.26.36.16621/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-hise4j7c/src/docker-src.2018-04-01-17.26.36.16621/qem COPYRUNNER RUN test-mingw in qemu:fedora tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Packages installed: PyYAML-3.12-5.fc27.x86_64 SDL-devel-1.2.15-29.fc27.x86_64 bc-1.07.1-3.fc27.x86_64 bison-3.0.4-8.fc27.x86_64 bzip2-1.0.6-24.fc27.x86_64 ccache-3.3.6-1.fc27.x86_64 clang-5.0.1-3.fc27.x86_64 findutils-4.6.0-16.fc27.x86_64 flex-2.6.1-5.fc27.x86_64 gcc-7.3.1-5.fc27.x86_64 gcc-c++-7.3.1-5.fc27.x86_64 gettext-0.19.8.1-12.fc27.x86_64 git-2.14.3-3.fc27.x86_64 glib2-devel-2.54.3-2.fc27.x86_64 hostname-3.18-4.fc27.x86_64 libaio-devel-0.3.110-9.fc27.x86_64 libasan-7.3.1-5.fc27.x86_64
[Qemu-devel] [PATCH] e1000e: Prevent MSI/MSI-X storms
From: Jan KiszkaOnly signal MSI/MSI-X events on rising edges. So far we re-triggered the interrupt sources even if the guest did no consumed the pending one, easily causing interrupt storms. Issue was observable with Linux 4.16 e1000e driver when MSI-X was used. Vector 2 was causing interrupt storms after the driver activated the device. Signed-off-by: Jan Kiszka --- hw/net/e1000e_core.c | 10 ++ hw/net/e1000e_core.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index c93c4661ed..ecf9b1 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -2123,6 +2123,13 @@ e1000e_send_msi(E1000ECore *core, bool msix) { uint32_t causes = core->mac[ICR] & core->mac[IMS] & ~E1000_ICR_ASSERTED; +core->msi_causes_pending &= causes; +causes ^= core->msi_causes_pending; +if (causes == 0) { +return; +} +core->msi_causes_pending |= causes; + if (msix) { e1000e_msix_notify(core, causes); } else { @@ -2160,6 +2167,9 @@ e1000e_update_interrupt_state(E1000ECore *core) core->mac[ICS] = core->mac[ICR]; interrupts_pending = (core->mac[IMS] & core->mac[ICR]) ? true : false; +if (!interrupts_pending) { +core->msi_causes_pending = 0; +} trace_e1000e_irq_pending_interrupts(core->mac[ICR] & core->mac[IMS], core->mac[ICR], core->mac[IMS]); diff --git a/hw/net/e1000e_core.h b/hw/net/e1000e_core.h index 7d8ff41890..63a15510cc 100644 --- a/hw/net/e1000e_core.h +++ b/hw/net/e1000e_core.h @@ -109,6 +109,8 @@ struct E1000Core { NICState *owner_nic; PCIDevice *owner; void (*owner_start_recv)(PCIDevice *d); + +uint32_t msi_causes_pending; }; void -- 2.13.6
[Qemu-devel] [PATCH] e1000e: Do not auto-clear ICR bits which aren't set in EIAC
From: Jan KiszkaThe spec does not justify clearing of any E1000_ICR_OTHER_CAUSES when E1000_ICR_OTHER is set in EIAC. In fact, removing this code fixes the issue the Linux driver runs into since 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts") and was worked around by 745d0bd3af99 ("e1000e: Remove Other from EIAC"). Signed-off-by: Jan Kiszka --- This resolves the issue I reported on February 18 ("e1000e: MSI-X problem with recent Linux drivers"). hw/net/e1000e_core.c | 4 1 file changed, 4 deletions(-) diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c index ecf9b1..d38f025c0f 100644 --- a/hw/net/e1000e_core.c +++ b/hw/net/e1000e_core.c @@ -2022,10 +2022,6 @@ e1000e_msix_notify_one(E1000ECore *core, uint32_t cause, uint32_t int_cfg) effective_eiac = core->mac[EIAC] & cause; -if (effective_eiac == E1000_ICR_OTHER) { -effective_eiac |= E1000_ICR_OTHER_CAUSES; -} - core->mac[ICR] &= ~effective_eiac; if (!(core->mac[CTRL_EXT] & E1000_CTRL_EXT_IAME)) { -- 2.13.6
Re: [Qemu-devel] [PATCH] linux-user: fix error propagation in clock_gettime
Le 01/04/2018 à 23:05, Laurent Vivier a écrit : > Le 01/04/2018 à 22:37, Max Filippov a écrit : >> host_to_target_timespec may return error if target address could not be >> locked, but it is ignored. >> Propagate return value of host_to_target_timespec to the caller of >> clock_gettime. >> >> Signed-off-by: Max Filippov>> --- >> linux-user/syscall.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >> index d51e2a00ee31..52e2f9c16479 100644 >> --- a/linux-user/syscall.c >> +++ b/linux-user/syscall.c >> @@ -11884,7 +11884,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long >> arg1, >> struct timespec ts; >> ret = get_errno(clock_gettime(arg1, )); >> if (!is_error(ret)) { >> -host_to_target_timespec(arg2, ); >> +ret = host_to_target_timespec(arg2, ); >> } >> break; >> } >> > > Could you also update in the same way clock_getres? Ignore this, clock_getres() accepts a NULL pointer. so: Reviewed-by: Laurent Vivier Thanks, Laurent
Re: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation
Hi, This series failed docker-build@min-glib build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401204653.14211-1-laur...@vivier.eu Subject: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-build@min-glib === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 0c009ffb17 linux-user: fix alpha signal emulation === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-__kcdpg5/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD min-glib make[1]: Entering directory '/var/tmp/patchew-tester-tmp-__kcdpg5/src' GEN /var/tmp/patchew-tester-tmp-__kcdpg5/src/docker-src.2018-04-01-17.13.40.12697/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-__kcdpg5/src/docker-src.2018-04-01-17.13.40.12697/qemu.tar.vroot'... done. Checking out files: 39% (2385/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 44% (2726/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 46% (2796/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 86% (5253/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-__kcdpg5/src/docker-src.2018-04-01-17.13.40.12697/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-__kcdpg5/src/docker-src.2018-04-01-17.13.40.12697/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-__kcdpg5/src/docker-src.2018-04-01-17.13.40.12697/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-build in qemu:min-glib tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now Environment variables: /var/tmp/qemu/run: line 32: prep_fail: command not found HOSTNAME=561218d5f66d MAKEFLAGS= -j8 J=8 CCACHE_DIR=/var/tmp/ccache
Re: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation
Hi, This series failed docker-quick@centos6 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401204653.14211-1-laur...@vivier.eu Subject: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 0c009ffb17 linux-user: fix alpha signal emulation === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-x3hbvtil/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD centos6 make[1]: Entering directory '/var/tmp/patchew-tester-tmp-x3hbvtil/src' GEN /var/tmp/patchew-tester-tmp-x3hbvtil/src/docker-src.2018-04-01-17.09.14.9758/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-x3hbvtil/src/docker-src.2018-04-01-17.09.14.9758/qemu.tar.vroot'... done. Checking out files: 45% (2739/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 77% (4690/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 95% (5771/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-x3hbvtil/src/docker-src.2018-04-01-17.09.14.9758/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-x3hbvtil/src/docker-src.2018-04-01-17.09.14.9758/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-x3hbvtil/src/docker-src.2018-04-01-17.09.14.97 COPYRUNNER RUN test-quick in qemu:centos6 tar: Unexpected EOF in archive tar: rmtlseek not stopped at a record boundary tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Packages installed: SDL-devel-1.2.14-7.el6_7.1.x86_64 bison-2.4.1-5.el6.x86_64 bzip2-devel-1.0.5-7.el6_0.x86_64 ccache-3.1.6-2.el6.x86_64 csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64 flex-2.5.35-9.el6.x86_64 gcc-4.4.7-18.el6.x86_64 gettext-0.17-18.el6.x86_64 git-1.7.1-9.el6_9.x86_64 glib2-devel-2.28.8-9.el6.x86_64 libepoxy-devel-1.2-3.el6.x86_64 libfdt-devel-1.4.0-1.el6.x86_64 librdmacm-devel-1.0.21-0.el6.x86_64 lzo-devel-2.03-3.1.el6_5.1.x86_64 make-3.81-23.el6.x86_64
Re: [Qemu-devel] [PATCH] linux-user: implement clock_settime
Hi, This series failed docker-build@min-glib build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401203811.31714-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH] linux-user: implement clock_settime === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-build@min-glib === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 789e1f7d0f linux-user: implement clock_settime === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-fwxtyrfd/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD min-glib make[1]: Entering directory '/var/tmp/patchew-tester-tmp-fwxtyrfd/src' GEN /var/tmp/patchew-tester-tmp-fwxtyrfd/src/docker-src.2018-04-01-17.06.54.7577/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-fwxtyrfd/src/docker-src.2018-04-01-17.06.54.7577/qemu.tar.vroot'... done. Checking out files: 46% (2822/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 55% (3378/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-fwxtyrfd/src/docker-src.2018-04-01-17.06.54.7577/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-fwxtyrfd/src/docker-src.2018-04-01-17.06.54.7577/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-fwxtyrfd/src/docker-src.2018-04-01-17.06.54.7577/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-build in qemu:min-glib tar: Unexpected EOF in archive tar: rmtlseek not stopped at a record boundary tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Environment variables: HOSTNAME=16ba37df7b7f MAKEFLAGS= -j8 J=8 CCACHE_DIR=/var/tmp/ccache EXTRA_CONFIGURE_OPTS= V= SHOW_ENV=1 PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ TARGET_LIST= SHLVL=1 HOME=/root TEST_DIR=/tmp/qemu-test FEATURES= dtc DEBUG= _=/usr/bin/env Configure options: --enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install ERROR:
Re: [Qemu-devel] [PATCH] linux-user: fix error propagation in clock_gettime
Le 01/04/2018 à 22:37, Max Filippov a écrit : > host_to_target_timespec may return error if target address could not be > locked, but it is ignored. > Propagate return value of host_to_target_timespec to the caller of > clock_gettime. > > Signed-off-by: Max Filippov> --- > linux-user/syscall.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index d51e2a00ee31..52e2f9c16479 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -11884,7 +11884,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long > arg1, > struct timespec ts; > ret = get_errno(clock_gettime(arg1, )); > if (!is_error(ret)) { > -host_to_target_timespec(arg2, ); > +ret = host_to_target_timespec(arg2, ); > } > break; > } > Could you also update in the same way clock_getres? There are other syscalls ignoring result of host_to_target_timespec(), but they are also ignoring result of target_to_host_timespec, but I don't think the -rc stage is the good moment to fix them all. Thanks, Laurent
Re: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401204653.14211-1-laur...@vivier.eu Subject: [Qemu-devel] [PATCH] linux-user: fix alpha signal emulation === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 0c009ffb17 linux-user: fix alpha signal emulation === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-l9m6wdw9/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-l9m6wdw9/src' GEN /var/tmp/patchew-tester-tmp-l9m6wdw9/src/docker-src.2018-04-01-17.02.08.3263/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-l9m6wdw9/src/docker-src.2018-04-01-17.02.08.3263/qemu.tar.vroot'... done. Checking out files: 29% (1800/6066) Checking out files: 30% (1820/6066) Checking out files: 31% (1881/6066) Checking out files: 32% (1942/6066) Checking out files: 33% (2002/6066) Checking out files: 34% (2063/6066) Checking out files: 35% (2124/6066) Checking out files: 36% (2184/6066) Checking out files: 37% (2245/6066) Checking out files: 38% (2306/6066) Checking out files: 39% (2366/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 48% (2959/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 53% (3232/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 56% (3456/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-l9m6wdw9/src/docker-src.2018-04-01-17.02.08.3263/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-l9m6wdw9/src/docker-src.2018-04-01-17.02.08.3263/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-l9m6wdw9/src/docker-src.2018-04-01-17.02.08.3263/qemu.tar: Wrote only 2048 of
Re: [Qemu-devel] [PATCH v2] target/xtensa: linux-user: fix sysv IPC structures
Le 01/04/2018 à 22:36, Max Filippov a écrit : > - make target_ipc_perm fields match kernel definitions for xtensa; > - add target_semid64_ds with proper order of times and reserved fields > for little/big endian specific for xtensa; > - add missing reserved fields after time fields to the target_shmid_ds; > - fix types of shm_cpid, shm_lpid and shm_nattch fields of > target_shmid_ds to match kernel definitions for xtensa. > > These changes fix guest ipcs output and fix glibc testsuite tests > sysvipc/test-sysvsem and sysvipc/test-sysvshm. > > Signed-off-by: Max Filippov> --- > Changes v1->v2: > - remove little/big endian versions of target_shmid_ds layout to match > kernel definition. > > linux-user/xtensa/target_structs.h | 37 ++--- > 1 file changed, 30 insertions(+), 7 deletions(-) > Reviewed-by: Laurent Vivier
Re: [Qemu-devel] [PATCH] linux-user: implement clock_settime
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401203811.31714-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH] linux-user: implement clock_settime === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 789e1f7d0f linux-user: implement clock_settime === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-wd5jme6i/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-wd5jme6i/src' GEN /var/tmp/patchew-tester-tmp-wd5jme6i/src/docker-src.2018-04-01-16.50.36.26441/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-wd5jme6i/src/docker-src.2018-04-01-16.50.36.26441/qemu.tar.vroot'... done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-wd5jme6i/src/docker-src.2018-04-01-16.50.36.26441/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-wd5jme6i/src/docker-src.2018-04-01-16.50.36.26441/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' tar: /var/tmp/patchew-tester-tmp-wd5jme6i/src/docker-src.2018-04-01-16.50.36.26441/qemu.tar: Wrote only 2048 of 10240 bytes tar: Error is not recoverable: exiting now failed to create tar file COPYRUNNER RUN test-mingw in qemu:fedora tar: Unexpected EOF in archive tar: rmtlseek not stopped at a record boundary tar: Error is not recoverable: exiting now /var/tmp/qemu/run: line 32: prep_fail: command not found Packages installed: PyYAML-3.12-5.fc27.x86_64 SDL-devel-1.2.15-29.fc27.x86_64 bc-1.07.1-3.fc27.x86_64 bison-3.0.4-8.fc27.x86_64 bzip2-1.0.6-24.fc27.x86_64 ccache-3.3.6-1.fc27.x86_64 clang-5.0.1-3.fc27.x86_64 findutils-4.6.0-16.fc27.x86_64 flex-2.6.1-5.fc27.x86_64 gcc-7.3.1-5.fc27.x86_64 gcc-c++-7.3.1-5.fc27.x86_64 gettext-0.19.8.1-12.fc27.x86_64 git-2.14.3-3.fc27.x86_64 glib2-devel-2.54.3-2.fc27.x86_64 hostname-3.18-4.fc27.x86_64 libaio-devel-0.3.110-9.fc27.x86_64 libasan-7.3.1-5.fc27.x86_64 libfdt-devel-1.4.6-1.fc27.x86_64 libubsan-7.3.1-5.fc27.x86_64 llvm-5.0.1-3.fc27.x86_64 make-4.2.1-4.fc27.x86_64 mingw32-SDL-1.2.15-9.fc27.noarch mingw32-bzip2-1.0.6-9.fc27.noarch mingw32-curl-7.54.1-2.fc27.noarch mingw32-glib2-2.54.1-1.fc27.noarch mingw32-gmp-6.1.2-2.fc27.noarch mingw32-gnutls-3.5.13-2.fc27.noarch mingw32-gtk2-2.24.31-4.fc27.noarch mingw32-gtk3-3.22.16-1.fc27.noarch mingw32-libjpeg-turbo-1.5.1-3.fc27.noarch mingw32-libpng-1.6.29-2.fc27.noarch mingw32-libssh2-1.8.0-3.fc27.noarch mingw32-libtasn1-4.13-1.fc27.noarch mingw32-nettle-3.3-3.fc27.noarch mingw32-pixman-0.34.0-3.fc27.noarch mingw32-pkg-config-0.28-9.fc27.x86_64 mingw64-SDL-1.2.15-9.fc27.noarch mingw64-bzip2-1.0.6-9.fc27.noarch mingw64-curl-7.54.1-2.fc27.noarch mingw64-glib2-2.54.1-1.fc27.noarch mingw64-gmp-6.1.2-2.fc27.noarch mingw64-gnutls-3.5.13-2.fc27.noarch mingw64-gtk2-2.24.31-4.fc27.noarch mingw64-gtk3-3.22.16-1.fc27.noarch mingw64-libjpeg-turbo-1.5.1-3.fc27.noarch mingw64-libpng-1.6.29-2.fc27.noarch mingw64-libssh2-1.8.0-3.fc27.noarch mingw64-libtasn1-4.13-1.fc27.noarch mingw64-nettle-3.3-3.fc27.noarch mingw64-pixman-0.34.0-3.fc27.noarch mingw64-pkg-config-0.28-9.fc27.x86_64 nettle-devel-3.4-1.fc27.x86_64 perl-5.26.1-403.fc27.x86_64 pixman-devel-0.34.0-4.fc27.x86_64 python3-3.6.2-13.fc27.x86_64 sparse-0.5.1-2.fc27.x86_64 tar-1.29-7.fc27.x86_64 which-2.21-4.fc27.x86_64 zlib-devel-1.2.11-4.fc27.x86_64 Environment variables: TARGET_LIST= PACKAGES=ccache gettext git tar PyYAML sparse flex bison python3 bzip2 hostname glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel gcc gcc-c++ llvm clang make perl which bc findutils libaio-devel nettle-devel libasan libubsan mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 mingw32-bzip2 mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 mingw64-bzip2 J=8 V= HOSTNAME=9bd6036f3a61 DEBUG= SHOW_ENV=1 PWD=/
Re: [Qemu-devel] [PATCH] linux-user: fix error propagation in clock_gettime
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401203739.31670-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH] linux-user: fix error propagation in clock_gettime === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' faa0b9a915 linux-user: fix error propagation in clock_gettime === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-77k2xygq/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-77k2xygq/src' GEN /var/tmp/patchew-tester-tmp-77k2xygq/src/docker-src.2018-04-01-16.47.20.24152/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-77k2xygq/src/docker-src.2018-04-01-16.47.20.24152/qemu.tar.vroot'... done. Checking out files: 26% (1585/6066) Checking out files: 27% (1638/6066) Checking out files: 28% (1699/6066) Checking out files: 29% (1760/6066) Checking out files: 30% (1820/6066) Checking out files: 31% (1881/6066) Checking out files: 32% (1942/6066) Checking out files: 33% (2002/6066) Checking out files: 34% (2063/6066) Checking out files: 35% (2124/6066) Checking out files: 36% (2184/6066) Checking out files: 36% (2219/6066) Checking out files: 37% (2245/6066) Checking out files: 38% (2306/6066) Checking out files: 39% (2366/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 47% (2860/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 52% (3184/6066) Checking out files: 52% (3212/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 63% (3858/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-77k2xygq/src/docker-src.2018-04-01-16.47.20.24152/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into
[Qemu-devel] [PATCH] linux-user: fix alpha signal emulation
setup_frame() doesn't set correctly the address of the trampoline code. The offset of retcode array must be added to the stack frame address. Signed-off-by: Laurent Vivier--- linux-user/signal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index 2ea3e0321f..9399f0ec47 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -6367,7 +6367,7 @@ static void setup_frame(int sig, struct target_sigaction *ka, >retcode[1]); __put_user(INSN_CALLSYS, >retcode[2]); /* imb() */ -r26 = frame_addr; +r26 = frame_addr + offsetof(struct target_sigframe, retcode); } unlock_user_struct(frame, frame_addr, 1); @@ -6424,7 +6424,7 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka, >retcode[1]); __put_user(INSN_CALLSYS, >retcode[2]); /* imb(); */ -r26 = frame_addr; +r26 = frame_addr + offsetof(struct target_sigframe, retcode); } if (err) { -- 2.14.3
[Qemu-devel] [PATCH] linux-user: implement clock_settime
This fixes glibc testsuite test rt/tst-clock2. Signed-off-by: Max Filippov--- linux-user/syscall.c | 12 1 file changed, 12 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 52e2f9c16479..924fd68efcdd 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11878,6 +11878,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, goto unimplemented_nowarn; #endif +#ifdef TARGET_NR_clock_settime +case TARGET_NR_clock_settime: +{ +struct timespec ts; + +ret = target_to_host_timespec(, arg2); +if (!is_error(ret)) { +ret = get_errno(clock_settime(arg1, )); +} +break; +} +#endif #ifdef TARGET_NR_clock_gettime case TARGET_NR_clock_gettime: { -- 2.11.0
[Qemu-devel] [PATCH] linux-user: fix error propagation in clock_gettime
host_to_target_timespec may return error if target address could not be locked, but it is ignored. Propagate return value of host_to_target_timespec to the caller of clock_gettime. Signed-off-by: Max Filippov--- linux-user/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index d51e2a00ee31..52e2f9c16479 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11884,7 +11884,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, struct timespec ts; ret = get_errno(clock_gettime(arg1, )); if (!is_error(ret)) { -host_to_target_timespec(arg2, ); +ret = host_to_target_timespec(arg2, ); } break; } -- 2.11.0
[Qemu-devel] [PATCH v2] target/xtensa: linux-user: fix sysv IPC structures
- make target_ipc_perm fields match kernel definitions for xtensa; - add target_semid64_ds with proper order of times and reserved fields for little/big endian specific for xtensa; - add missing reserved fields after time fields to the target_shmid_ds; - fix types of shm_cpid, shm_lpid and shm_nattch fields of target_shmid_ds to match kernel definitions for xtensa. These changes fix guest ipcs output and fix glibc testsuite tests sysvipc/test-sysvsem and sysvipc/test-sysvshm. Signed-off-by: Max Filippov--- Changes v1->v2: - remove little/big endian versions of target_shmid_ds layout to match kernel definition. linux-user/xtensa/target_structs.h | 37 ++--- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/linux-user/xtensa/target_structs.h b/linux-user/xtensa/target_structs.h index 020e20e242fc..1b3d9ca314ff 100644 --- a/linux-user/xtensa/target_structs.h +++ b/linux-user/xtensa/target_structs.h @@ -8,21 +8,44 @@ struct target_ipc_perm { abi_uint cuid; /* Creator's user ID. */ abi_uint cgid; /* Creator's group ID. */ abi_uint mode; /* Read/write permission. */ -abi_ushort __seq; /* Sequence number. */ +abi_ulong __seq;/* Sequence number. */ +abi_ulong __unused1; +abi_ulong __unused2; +}; + +struct target_semid64_ds { + struct target_ipc_perm sem_perm; +#ifdef TARGET_WORDS_BIGENDIAN + abi_ulong __unused1; + abi_ulong sem_otime; + abi_ulong __unused2; + abi_ulong sem_ctime; +#else + abi_ulong sem_otime; + abi_ulong __unused1; + abi_ulong sem_ctime; + abi_ulong __unused2; +#endif + abi_ulong sem_nsems; + abi_ulong __unused3; + abi_ulong __unused4; }; +#define TARGET_SEMID64_DS struct target_shmid_ds { struct target_ipc_perm shm_perm;/* operation permission struct */ -abi_int shm_segsz; /* size of segment in bytes */ +abi_long shm_segsz; /* size of segment in bytes */ abi_long shm_atime; /* time of last shmat() */ +abi_ulong __unused1; abi_long shm_dtime; /* time of last shmdt() */ -abi_long shm_ctime; /* time of last change by shmctl() */ -abi_ushort shm_cpid;/* pid of creator */ -abi_ushort shm_lpid;/* pid of last shmop */ -abi_ushort shm_nattch; /* number of current attaches */ -abi_ushort shm_unused; /* compatibility */ abi_ulong __unused2; +abi_long shm_ctime; /* time of last change by shmctl() */ abi_ulong __unused3; +abi_uint shm_cpid; /* pid of creator */ +abi_uint shm_lpid; /* pid of last shmop */ +abi_ulong shm_nattch; /* number of current attaches */ +abi_ulong __unused4; +abi_ulong __unused5; }; #endif -- 2.11.0
Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
On Sun, Apr 1, 2018 at 12:57 PM, Laurent Vivierwrote: > Le 01/04/2018 à 21:24, Max Filippov a écrit : >> struct target_shmid_ds { >> struct target_ipc_perm shm_perm;/* operation permission struct */ >> -abi_int shm_segsz; /* size of segment in bytes */ >> +abi_long shm_segsz; /* size of segment in bytes */ >> +#ifdef TARGET_WORDS_BIGENDIAN >> +abi_ulong __unused1; >> abi_long shm_atime; /* time of last shmat() */ >> +abi_ulong __unused2; >> abi_long shm_dtime; /* time of last shmdt() */ >> +abi_ulong __unused3; >> abi_long shm_ctime; /* time of last change by shmctl() >> */ >> -abi_ushort shm_cpid;/* pid of creator */ >> -abi_ushort shm_lpid;/* pid of last shmop */ >> -abi_ushort shm_nattch; /* number of current attaches */ >> -abi_ushort shm_unused; /* compatibility */ >> +#else >> +abi_long shm_atime; /* time of last shmat() */ >> +abi_ulong __unused1; >> +abi_long shm_dtime; /* time of last shmdt() */ >> abi_ulong __unused2; >> +abi_long shm_ctime; /* time of last change by shmctl() >> */ >> abi_ulong __unused3; >> +#endif >> +abi_uint shm_cpid; /* pid of creator */ >> +abi_uint shm_lpid; /* pid of last shmop */ >> +abi_ulong shm_nattch; /* number of current attaches */ >> +abi_ulong __unused4; >> +abi_ulong __unused5; >> }; > > This is weird: shmid64_ds in arch/xtensa/include/uapi/asm/shmbuf.h has > two part like yours, but both parts have exactly the same fields order. > > Could you explain? Ooops, my bad. I haven't checked how this part works and I guess the kernel definitions were meant to be different, but alas, they're not. I'll drop this part. -- Thanks. -- Max
Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Le 01/04/2018 à 21:24, Max Filippov a écrit : > - make target_ipc_perm fields match kernel definitions for xtensa; > - add target_semid64_ds with proper order of times and reserved fields > for little/big endian specific for xtensa; > - fix order of times and reserved fields of target_shmid_ds for > little/big endian; > - fix types of shm_cpid, shm_lpid and shm_nattch fields of > target_shmid_ds to match kernel definitions for xtensa. > > These changes fix guest ipcs output and fix glibc testsuite tests > sysvipc/test-sysvsem and sysvipc/test-sysvshm. > > Signed-off-by: Max Filippov> --- > linux-user/xtensa/target_structs.h | 44 > -- > 1 file changed, 38 insertions(+), 6 deletions(-) > > diff --git a/linux-user/xtensa/target_structs.h > b/linux-user/xtensa/target_structs.h > index 020e20e242fc..a3c854b53731 100644 > --- a/linux-user/xtensa/target_structs.h > +++ b/linux-user/xtensa/target_structs.h > @@ -8,21 +8,53 @@ struct target_ipc_perm { > abi_uint cuid; /* Creator's user ID. */ > abi_uint cgid; /* Creator's group ID. */ > abi_uint mode; /* Read/write permission. */ > -abi_ushort __seq; /* Sequence number. */ > +abi_ulong __seq;/* Sequence number. */ > +abi_ulong __unused1; > +abi_ulong __unused2; > }; ok, looks like ipc64_perm in arch/xtensa/include/uapi/asm/ipcbuf.h > +struct target_semid64_ds { > + struct target_ipc_perm sem_perm; > +#ifdef TARGET_WORDS_BIGENDIAN > + abi_ulong __unused1; > + abi_ulong sem_otime; > + abi_ulong __unused2; > + abi_ulong sem_ctime; > +#else > + abi_ulong sem_otime; > + abi_ulong __unused1; > + abi_ulong sem_ctime; > + abi_ulong __unused2; > +#endif > + abi_ulong sem_nsems; > + abi_ulong __unused3; > + abi_ulong __unused4; > +}; > +#define TARGET_SEMID64_DS > + ok, looks like semid64_ds in arch/xtensa/include/uapi/asm/sembuf.h > struct target_shmid_ds { > struct target_ipc_perm shm_perm;/* operation permission struct */ > -abi_int shm_segsz; /* size of segment in bytes */ > +abi_long shm_segsz; /* size of segment in bytes */ > +#ifdef TARGET_WORDS_BIGENDIAN > +abi_ulong __unused1; > abi_long shm_atime; /* time of last shmat() */ > +abi_ulong __unused2; > abi_long shm_dtime; /* time of last shmdt() */ > +abi_ulong __unused3; > abi_long shm_ctime; /* time of last change by shmctl() */ > -abi_ushort shm_cpid;/* pid of creator */ > -abi_ushort shm_lpid;/* pid of last shmop */ > -abi_ushort shm_nattch; /* number of current attaches */ > -abi_ushort shm_unused; /* compatibility */ > +#else > +abi_long shm_atime; /* time of last shmat() */ > +abi_ulong __unused1; > +abi_long shm_dtime; /* time of last shmdt() */ > abi_ulong __unused2; > +abi_long shm_ctime; /* time of last change by shmctl() */ > abi_ulong __unused3; > +#endif > +abi_uint shm_cpid; /* pid of creator */ > +abi_uint shm_lpid; /* pid of last shmop */ > +abi_ulong shm_nattch; /* number of current attaches */ > +abi_ulong __unused4; > +abi_ulong __unused5; > }; This is weird: shmid64_ds in arch/xtensa/include/uapi/asm/shmbuf.h has two part like yours, but both parts have exactly the same fields order. Could you explain? Thanks, Laurent
Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401192421.29712-1-jcmvb...@gmail.com Subject: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 85fb64537d target/xtensa: linux-user: fix sysv IPC structures === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-a_d40g47/src' GEN /var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar.vroot'... done. Checking out files: 3% (211/6066) Checking out files: 4% (243/6066) Checking out files: 5% (304/6066) Checking out files: 6% (364/6066) Checking out files: 7% (425/6066) Checking out files: 8% (486/6066) Checking out files: 9% (546/6066) Checking out files: 10% (607/6066) Checking out files: 11% (668/6066) Checking out files: 12% (728/6066) Checking out files: 13% (789/6066) Checking out files: 14% (850/6066) Checking out files: 15% (910/6066) Checking out files: 16% (971/6066) Checking out files: 17% (1032/6066) Checking out files: 18% (1092/6066) Checking out files: 19% (1153/6066) Checking out files: 20% (1214/6066) Checking out files: 20% (1221/6066) Checking out files: 21% (1274/6066) Checking out files: 22% (1335/6066) Checking out files: 23% (1396/6066) Checking out files: 24% (1456/6066) Checking out files: 25% (1517/6066) Checking out files: 26% (1578/6066) Checking out files: 27% (1638/6066) Checking out files: 28% (1699/6066) Checking out files: 29% (1760/6066) Checking out files: 30% (1820/6066) Checking out files: 31% (1881/6066) Checking out files: 32% (1942/6066) Checking out files: 33% (2002/6066) Checking out files: 34% (2063/6066) Checking out files: 35% (2124/6066) Checking out files: 35% (2176/6066) Checking out files: 36% (2184/6066) Checking out files: 37% (2245/6066) Checking out files: 38% (2306/6066) Checking out files: 39% (2366/6066) Checking out files: 40% (2427/6066) Checking out files: 41% (2488/6066) Checking out files: 42% (2548/6066) Checking out files: 42% (2600/6066) Checking out files: 43% (2609/6066) Checking out files: 44% (2670/6066) Checking out files: 45% (2730/6066) Checking out files: 45% (2739/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 47% (2861/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 54% (3277/6066) Checking out files: 55% (3337/6066) Checking out files: 55% (3378/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 72% (4417/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 75% (4601/6066) Checking out files: 75% (4602/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files:
[Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
- make target_ipc_perm fields match kernel definitions for xtensa; - add target_semid64_ds with proper order of times and reserved fields for little/big endian specific for xtensa; - fix order of times and reserved fields of target_shmid_ds for little/big endian; - fix types of shm_cpid, shm_lpid and shm_nattch fields of target_shmid_ds to match kernel definitions for xtensa. These changes fix guest ipcs output and fix glibc testsuite tests sysvipc/test-sysvsem and sysvipc/test-sysvshm. Signed-off-by: Max Filippov--- linux-user/xtensa/target_structs.h | 44 -- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/linux-user/xtensa/target_structs.h b/linux-user/xtensa/target_structs.h index 020e20e242fc..a3c854b53731 100644 --- a/linux-user/xtensa/target_structs.h +++ b/linux-user/xtensa/target_structs.h @@ -8,21 +8,53 @@ struct target_ipc_perm { abi_uint cuid; /* Creator's user ID. */ abi_uint cgid; /* Creator's group ID. */ abi_uint mode; /* Read/write permission. */ -abi_ushort __seq; /* Sequence number. */ +abi_ulong __seq;/* Sequence number. */ +abi_ulong __unused1; +abi_ulong __unused2; }; +struct target_semid64_ds { + struct target_ipc_perm sem_perm; +#ifdef TARGET_WORDS_BIGENDIAN + abi_ulong __unused1; + abi_ulong sem_otime; + abi_ulong __unused2; + abi_ulong sem_ctime; +#else + abi_ulong sem_otime; + abi_ulong __unused1; + abi_ulong sem_ctime; + abi_ulong __unused2; +#endif + abi_ulong sem_nsems; + abi_ulong __unused3; + abi_ulong __unused4; +}; +#define TARGET_SEMID64_DS + struct target_shmid_ds { struct target_ipc_perm shm_perm;/* operation permission struct */ -abi_int shm_segsz; /* size of segment in bytes */ +abi_long shm_segsz; /* size of segment in bytes */ +#ifdef TARGET_WORDS_BIGENDIAN +abi_ulong __unused1; abi_long shm_atime; /* time of last shmat() */ +abi_ulong __unused2; abi_long shm_dtime; /* time of last shmdt() */ +abi_ulong __unused3; abi_long shm_ctime; /* time of last change by shmctl() */ -abi_ushort shm_cpid;/* pid of creator */ -abi_ushort shm_lpid;/* pid of last shmop */ -abi_ushort shm_nattch; /* number of current attaches */ -abi_ushort shm_unused; /* compatibility */ +#else +abi_long shm_atime; /* time of last shmat() */ +abi_ulong __unused1; +abi_long shm_dtime; /* time of last shmdt() */ abi_ulong __unused2; +abi_long shm_ctime; /* time of last change by shmctl() */ abi_ulong __unused3; +#endif +abi_uint shm_cpid; /* pid of creator */ +abi_uint shm_lpid; /* pid of last shmop */ +abi_ulong shm_nattch; /* number of current attaches */ +abi_ulong __unused4; +abi_ulong __unused5; }; #endif -- 2.11.0
Re: [Qemu-devel] [PULL 0/1] RISC-V: Critical fixes for QEMU 2.12
On Fri, Mar 30, 2018 at 10:08:23AM -0700, Michael Clark wrote: > Hi Peter, > > I had tested Richard's proper fix but we didn't have a PR or the required > Reviewed-by and Signed-off-by so I made the PR for the conservative fix, "Richard" is me or Richard Henderson? Anyway if you meant Stefan O'Rear's fix (https://github.com/rwmjones/fedora-riscv-bootstrap/blob/master/stage1-riscv-qemu/force-float-save.patch) then it is my understanding that this is also just a workaround. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v
[Qemu-devel] [PATCH] build: Silence dtc directory creation
From: Jan KiszkaAlign with other mkdir calls. Signed-off-by: Jan Kiszka --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 727ef118f3..fc6f21001f 100644 --- a/Makefile +++ b/Makefile @@ -485,7 +485,7 @@ subdir-dtc: .git-submodule-status dtc/libfdt dtc/tests $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,) dtc/%: .git-submodule-status - mkdir -p $@ + @mkdir -p $@ # Overriding CFLAGS causes us to lose defines added in the sub-makefile. # Not overriding CFLAGS leads to mis-matches between compilation modes. -- 2.13.6 signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory
Hi, This series seems to have some coding style problems. See output below for more information: Type: series Message-id: 20180401084848.36725-1-jiangshan...@gmail.com Subject: [Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory === TEST SCRIPT BEGIN === #!/bin/bash BASE=base n=1 total=$(git log --oneline $BASE.. | wc -l) failed=0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..." if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then failed=1 echo fi n=$((n+1)) done exit $failed === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/20180401084848.36725-1-jiangshan...@gmail.com -> patchew/20180401084848.36725-1-jiangshan...@gmail.com Switched to a new branch 'test' 8886edc9cf migration: add capability to bypass the shared memory === OUTPUT BEGIN === Checking PATCH 1/1: migration: add capability to bypass the shared memory... ERROR: braces {} are necessary for all arms of this statement #118: FILE: migration/migration.c:1525: +if (migrate_postcopy_ram()) [...] ERROR: braces {} are necessary for all arms of this statement #150: FILE: migration/ram.c:784: +if (!bitmap) [...] total: 2 errors, 0 warnings, 108 lines checked Your patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-de...@redhat.com
Re: [Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory
Hi, This series failed docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. Type: series Message-id: 20180401084848.36725-1-jiangshan...@gmail.com Subject: [Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 8886edc9cf migration: add capability to bypass the shared memory === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-_154viaz/src/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' BUILD fedora make[1]: Entering directory '/var/tmp/patchew-tester-tmp-_154viaz/src' GEN /var/tmp/patchew-tester-tmp-_154viaz/src/docker-src.2018-04-01-04.54.41.32446/qemu.tar Cloning into '/var/tmp/patchew-tester-tmp-_154viaz/src/docker-src.2018-04-01-04.54.41.32446/qemu.tar.vroot'... done. Checking out files: 44% (2682/6066) Checking out files: 45% (2730/6066) Checking out files: 46% (2791/6066) Checking out files: 47% (2852/6066) Checking out files: 48% (2912/6066) Checking out files: 49% (2973/6066) Checking out files: 50% (3033/6066) Checking out files: 51% (3094/6066) Checking out files: 51% (3100/6066) Checking out files: 52% (3155/6066) Checking out files: 53% (3215/6066) Checking out files: 54% (3276/6066) Checking out files: 55% (3337/6066) Checking out files: 55% (3378/6066) Checking out files: 56% (3397/6066) Checking out files: 57% (3458/6066) Checking out files: 58% (3519/6066) Checking out files: 59% (3579/6066) Checking out files: 59% (3629/6066) Checking out files: 60% (3640/6066) Checking out files: 61% (3701/6066) Checking out files: 62% (3761/6066) Checking out files: 63% (3822/6066) Checking out files: 64% (3883/6066) Checking out files: 65% (3943/6066) Checking out files: 66% (4004/6066) Checking out files: 67% (4065/6066) Checking out files: 68% (4125/6066) Checking out files: 69% (4186/6066) Checking out files: 70% (4247/6066) Checking out files: 71% (4307/6066) Checking out files: 72% (4368/6066) Checking out files: 73% (4429/6066) Checking out files: 74% (4489/6066) Checking out files: 75% (4550/6066) Checking out files: 76% (4611/6066) Checking out files: 77% (4671/6066) Checking out files: 78% (4732/6066) Checking out files: 79% (4793/6066) Checking out files: 80% (4853/6066) Checking out files: 81% (4914/6066) Checking out files: 82% (4975/6066) Checking out files: 83% (5035/6066) Checking out files: 84% (5096/6066) Checking out files: 85% (5157/6066) Checking out files: 86% (5217/6066) Checking out files: 87% (5278/6066) Checking out files: 88% (5339/6066) Checking out files: 89% (5399/6066) Checking out files: 90% (5460/6066) Checking out files: 91% (5521/6066) Checking out files: 92% (5581/6066) Checking out files: 93% (5642/6066) Checking out files: 94% (5703/6066) Checking out files: 95% (5763/6066) Checking out files: 96% (5824/6066) Checking out files: 97% (5885/6066) Checking out files: 97% (5943/6066) Checking out files: 98% (5945/6066) Checking out files: 99% (6006/6066) Checking out files: 100% (6066/6066) Checking out files: 100% (6066/6066), done. Your branch is up-to-date with 'origin/test'. Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-_154viaz/src/docker-src.2018-04-01-04.54.41.32446/qemu.tar.vroot/dtc'... Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42' Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb' Cloning into '/var/tmp/patchew-tester-tmp-_154viaz/src/docker-src.2018-04-01-04.54.41.32446/qemu.tar.vroot/ui/keycodemapdb'... Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce' COPYRUNNER RUN test-mingw in qemu:fedora Packages installed: PyYAML-3.12-5.fc27.x86_64 SDL-devel-1.2.15-29.fc27.x86_64 bc-1.07.1-3.fc27.x86_64 bison-3.0.4-8.fc27.x86_64 bzip2-1.0.6-24.fc27.x86_64 ccache-3.3.6-1.fc27.x86_64 clang-5.0.1-3.fc27.x86_64 findutils-4.6.0-16.fc27.x86_64 flex-2.6.1-5.fc27.x86_64 gcc-7.3.1-5.fc27.x86_64 gcc-c++-7.3.1-5.fc27.x86_64 gettext-0.19.8.1-12.fc27.x86_64 git-2.14.3-3.fc27.x86_64 glib2-devel-2.54.3-2.fc27.x86_64 hostname-3.18-4.fc27.x86_64 libaio-devel-0.3.110-9.fc27.x86_64 libasan-7.3.1-5.fc27.x86_64 libfdt-devel-1.4.6-1.fc27.x86_64 libubsan-7.3.1-5.fc27.x86_64
[Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory
1) What's this When the migration capability 'bypass-shared-memory' is set, the shared memory will be bypassed when migration. It is the key feature to enable several excellent features for the qemu, such as qemu-local-migration, qemu-live-update, extremely-fast-save-restore, vm-template, vm-fast-live-clone, yet-another-post-copy-migration, etc.. The philosophy behind this key feature, including the resulting advanced key features, is that a part of the memory management is separated out from the qemu, and let the other toolkits such as libvirt, kata-containers (https://github.com/kata-containers) runv(https://github.com/hyperhq/runv/) or some multiple cooperative qemu commands directly access to it, manage it, provide features on it. 2) Status in real world The hyperhq(http://hyper.sh http://hypercontainer.io/) introduced the feature vm-template(vm-fast-live-clone) to the hyper container for several years, it works perfect. (see https://github.com/hyperhq/runv/pull/297). The feature vm-template makes the containers(VMs) can be started in 130ms and save 80M memory for every container(VM). So that the hyper containers are fast and high-density as normal containers. kata-containers project (https://github.com/kata-containers) which was launched by hyper, intel and friends and which descended from runv (and clear-container) should have this feature enabled. Unfortunately, due to the code confliction between runv, this feature was temporary disabled and it is being brought back by hyper and intel team. 3) How to use and bring up advanced features. In current qemu command line, shared memory has to be configured via memory-object. a) feature: qemu-local-migration, qemu-live-update Set the mem-path on the tmpfs and set share=on for it when start the vm. example: -object \ memory-backend-file,id=mem,size=128M,mem-path=/dev/shm/memory,share=on \ -numa node,nodeid=0,cpus=0-7,memdev=mem when you want to migrate the vm locally (after fixed a security bug of the qemu-binary, or other reason), you can start a new qemu with the same command line and -incoming, then you can migrate the vm from the old qemu to the new qemu with the migration capability 'bypass-shared-memory' set. The migration will migrate the device-state *ONLY*, the memory is the origin memory backed by tmpfs file. b) feature: extremely-fast-save-restore the same above, but the mem-path is on the persistent file system. c) feature: vm-template, vm-fast-live-clone the template vm is started as 1), and paused when the guest reaches the template point(example: the guest app is ready), then the template vm is saved. (the qemu process of the template can be killed now, because we need only the memory and the device state files (in tmpfs)). Then we can launch one or multiple VMs base on the template vm states, the new VMs are started without the “share=on”, all the new VMs share the initial memory from the memory file, they save a lot of memory. all the new VMs start from the template point, the guest app can go to work quickly. The new VM booted from template vm can’t become template again, if you need this unusual chained-template feature, you can write a cloneable-tmpfs kernel module for it. The libvirt toolkit can’t manage vm-template currently, in the hyperhq/runv, we use qemu wrapper script to do it. I hope someone add “libvrit managed template” feature to libvirt. d) feature: yet-another-post-copy-migration It is a possible feature, no toolkit can do it well now. Using nbd server/client on the memory file is reluctantly Ok but inconvenient. A special feature for tmpfs might be needed to fully complete this feature. No one need yet another post copy migration method, but it is possible when some crazy man need it. Cc: Samuel OrtizCc: Sebastien Boeuf Cc: James O. D. Hunt Cc: Xu Wang Cc: Peng Tao Cc: Xiao Guangrong Cc: Xiao Guangrong Signed-off-by: Lai Jiangshan --- Changes in V3: rebased on upstream master update the available version of the capability to v2.13 Changes in V2: rebased on 2.11.1 migration/migration.c | 13 + migration/migration.h | 1 + migration/ram.c | 26 +- qapi/migration.json | 6 +- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 52a5092add..c5a3591bc7 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1509,6 +1509,19 @@ bool migrate_release_ram(void) return s->enabled_capabilities[MIGRATION_CAPABILITY_RELEASE_RAM]; } +bool migrate_bypass_shared_memory(void) +{ +MigrationState *s; + +/* it is not workable with postcopy yet. */ +if (migrate_postcopy_ram()) +return false; + +s = migrate_get_current(); + +return
[Qemu-devel] [PATCH] migration: calculate expected_downtime with ram_bytes_remaining()
expected_downtime value is not accurate with dirty_pages_rate * page_size, using ram_bytes_remaining would yeild it correct. Signed-off-by: Balamuruhan S--- migration/migration.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 58bd382730..4e43dc4f92 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2245,8 +2245,7 @@ static void migration_update_counters(MigrationState *s, * recalculate. 1 is a small enough number for our purposes */ if (ram_counters.dirty_pages_rate && transferred > 1) { -s->expected_downtime = ram_counters.dirty_pages_rate * -qemu_target_page_size() / bandwidth; +s->expected_downtime = ram_bytes_remaining() / bandwidth; } qemu_file_reset_rate_limit(s->to_dst_file); -- 2.14.3