[Qemu-devel] [PATCH v2 1/1] xlnx-zcu102: Specify the number of max CPUs

2017-10-28 Thread Alistair Francis
Specify the number of CPUs that can run on ZynqMP.

Signed-off-by: Alistair Francis 
Reviewed-by: Philippe Mathieu-Daud 
---
V2:
 - Use macros

 hw/arm/xlnx-zcu102.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/arm/xlnx-zcu102.c b/hw/arm/xlnx-zcu102.c
index 519a16ed98..e2d15a1c9d 100644
--- a/hw/arm/xlnx-zcu102.c
+++ b/hw/arm/xlnx-zcu102.c
@@ -240,6 +240,7 @@ static void xlnx_zcu102_machine_class_init(ObjectClass *oc, 
void *data)
 mc->block_default_type = IF_IDE;
 mc->units_per_default_bus = 1;
 mc->ignore_memory_transaction_failures = true;
+mc->max_cpus = XLNX_ZYNQMP_NUM_APU_CPUS + XLNX_ZYNQMP_NUM_RPU_CPUS;
 }
 
 static const TypeInfo xlnx_zcu102_machine_init_typeinfo = {
-- 
2.11.0




Re: [Qemu-devel] [PATCH] tcg: Avoid setting tcg_initialize if !CONFIG_TCG

2017-10-28 Thread Thomas Huth
On 28.10.2017 00:54, Paolo Bonzini wrote:
> On 26/10/2017 21:03, Philippe Mathieu-Daudé wrote:
>>> AFAIK the only target that is so far supposed to work with
>>> --disable-tcg is i386. The configure script however lets you try to
>>> build without TCG if the host has an alternative accelerator (e.g. KVM),
>>> but that build is likely to fail. [ just confirmed this with aarch64 ]
>> What about s390x?
> 
> s390x and ppc64 supposedly support --disable-tcg?

s390x supports --disable-tcg, but ppc64 does not support it yet.

 Thomas





Re: [Qemu-devel] iotest 194 fails on vhdx

2017-10-28 Thread Paolo Bonzini
On 28/10/2017 08:57, Alexey Kardashevskiy wrote:
> On 27/10/17 18:12, Jeff Cody wrote:
>> VHDX does not support migration (VMDK fails the same way). 
> 
> Probably a very ignorant question but how can an image format not support
> migration at all? Is not it simple writing blocks, one-by-one? Thanks.

VHDX does not implement bdrv_invalidate_cache.  If you add that
callback, it can support migration.

Paolo



Re: [Qemu-devel] [PULL 0/3] xen-20171026-tag

2017-10-28 Thread Peter Maydell
On 26 October 2017 at 23:59, Stefano Stabellini  wrote:
> The following changes since commit 325a084c1ebccb265a3c8f1dd092ffbbfb448a00:
>
>   Merge remote-tracking branch 
> 'remotes/stefanberger/tags/pull-tpm-2017-10-24-1' into staging (2017-10-26 
> 09:20:11 +0100)
>
> are available in the git repository at:
>
>
>   git://xenbits.xen.org/people/sstabellini/qemu-dm.git tags/xen-20171026-tag
>
> for you to fetch changes up to 7cdcca725b6bfc96634c15e3f74ae4b148cf9c40:
>
>   xen: Log errno rather than return value (2017-10-26 14:26:48 -0700)
>
> 
> Xen 2017/10/26
>
> 
> Juergen Gross (2):
>   xen: add a global indicator for grant copy being available
>   xen: dont try setting max grants multiple times
>
> Ross Lagerwall (1):
>   xen: Log errno rather than return value

Applied, thanks.

-- PMM



[Qemu-devel] [Bug 1192499] Re: virsh migration copy-storage-all fails with "Unable to read from monitor: Connection reset by peer"

2017-10-28 Thread Bug Watch Updater
Launchpad has imported 15 comments from the remote bug at
https://bugzilla.redhat.com/show_bug.cgi?id=979411.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.


On 2013-06-28T13:15:38+00:00 chandrashekar wrote:

Created attachment 766573
Source-migrate-logs

Description of problem:

virsh migration copy-storage-all fails with "Unable to read from
monitor: Connection reset by peer" and shut downs the guest on the
source host.

Kernel Version: 3.10.0-rc5+

Libvirt Version: 1.0.6

Qemu Version: 1.5.50

Steps to Reproduce:

1. Created the qemu-img create -f qcow2 vm.qcow2 11G on the destination host 
which is same as the source.
2. Started the guest on the source
3. Started the vncdisplay to monitor the guest
4. Initiated the migration "virsh migrate --live VM1 qemu+ssh://host-ip/system 
tcp://host-ip --verbose --copy-storage-all"
5. It started the copying the storage from souce to destination (conitinously 
monitored it was growing)
6. Guest on the destination was paused and was running on the source
7. At some point the VM on the source got shutdown and migration failed with 
"Unable to read from monitor: Connection reset by peer"

Attached the libvirt debug logs.

The debug logs shows :

2013-06-19 08:43:12.253+: 4026: debug : virEventPollInterruptLocked:716 : 
Interrupting
2013-06-19 08:43:12.253+: 4026: debug : virEventPollAddTimeout:248 : 
EVENT_POLL_ADD_TIMEOUT: timer=1 frequency=0 cb=0x7fe930baa960 opaque=(nil) 
ff=(nil)

Note: The virsh live migration works fine with nfs storage from source to 
destination and vice versa.
With libvirt 1.0.5 and qemu 1.5 also we were facing the same issue, but with 
that even "Live migration with nfs also was not working".

Guest XML:



  VM1
  47feb0e1-0c23-9be9-da12-2ead34864de2
  4096000
  2048000
  1
  

  
  
hvm

  
  



  
  
  destroy
  restart
  restart
  
/usr/local/bin/qemu-system-x86_64

  
  
  
  


  
  
  
  


  


  



  
  
  
  


  


  



  


  
  


  

  
  


Reply at:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1192499/comments/2


On 2013-06-28T13:27:20+00:00 Michal wrote:

Can you provide the destination debug logs? Esp. content of
/var/log/libvirt/qemu/VM1.log as there's supposed to be the reason why
qemu died.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1192499/comments/3


On 2013-06-28T13:59:18+00:00 chandrashekar wrote:

Created attachment 766578
Source Logs

Reply at:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1192499/comments/4


On 2013-06-28T13:59:51+00:00 chandrashekar wrote:

Created attachment 766579
Destination Logs

Reply at:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1192499/comments/5


On 2013-06-28T14:20:28+00:00 Michal wrote:

>From the VM1_dest.log:

...
Completed 97 %
Completed 98 %
Completed 99 %
qemu: warning: error while loading state section id 1
load of migration failed

So the qemu is unable to migrate itself. Therefore I think this is actually a 
qemu bug.
On the other hand, I wonder why the guest on the source is shut down. There's 
no sign of that in the logs.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1192499/comments/6


On 2013-07-01T10:02:08+00:00 chandrashekar wrote:

When the migration fails the guest gets shutdown on the source.

[root@9 images]# virsh list --all
 IdName   State

 5 VM1 running

[root@9 images]# virsh migrate --live rhel64-64 qemu+ssh:/IP/system tcp://IP 
--verbose --copy-storage-all
 
Migration: [ 93 %]error: Unable to read from monitor: Connection reset by peer


At the destination:

[root@9 images]# virsh list --all
 IdName   State

 - VM1  shut off

[root@destination]# virsh list --all
 IdName   State

 16VM1  paused

[root@destination]# virsh list --all
 IdName   State


Reply at:
https://bugs.launchpad.ne

[Qemu-devel] [Bug 1336123] Re: bad switch, segfault in hw/pci-host/bonito.c bonito_readl

2017-10-28 Thread Thomas Huth
I think this might have been fixed with this commit here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=0ca4f94195cce77b624ed
Or can you still reproduce it with the current version of QEMU?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1336123

Title:
  bad switch, segfault in hw/pci-host/bonito.c bonito_readl

Status in QEMU:
  Incomplete

Bug description:
  http://git.qemu.org/?p=qemu.git;a=blob;f=hw/pci-
  host/bonito.c;h=56292adb03cd1a9873c2c9e5a0b2978fd0572214;hb=master#l301

  The switch statement is error-prone, since two branches return the
  same result.

  Segfault reproducing steps:
  1. make a Linux kernel(for example 3.16.0-rc2) with fuloong2e_defconfig
  2. use 'qemu-system-mips64el -machine fulong2e' to boot the vmlinux

  qemu versions tried: 2.0.0, 1.6.2

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1336123/+subscriptions



[Qemu-devel] [Bug 1358287] Re: -readconfig file doesn't interpret memory size correctly

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1358287

Title:
  -readconfig file doesn't interpret memory size correctly

Status in QEMU:
  Incomplete

Bug description:
  I'm running Qemu 2.1 and have issues with the config file format.

  Specifically Qemu wrote the following snippet with '-writeconfig':

  [memory]
size = "1024"

  However, upon starting a VM with this setting it only receives 128MiB
  (the default size).

  I'm reverting back to using the command line option now - that works.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1358287/+subscriptions



[Qemu-devel] [Bug 1338957] Re: RFE: add an event to report block devices watermark

2017-10-28 Thread Thomas Huth
Upstream here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=e2462113b2003085ad16f15e1

** Changed in: qemu
   Status: New => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1338957

Title:
  RFE: add an event to report block devices watermark

Status in QEMU:
  Fix Released

Bug description:
  Add an event to report if a block device usage exceeds a threshold.
  The threshold should be configurable with a monitor command. The event
  should report the affected block device. Additional useful information
  could be the offset of the highest sector , like in the query-
  blockstats output.

  Rationale for the RFE
  Managing applications, like oVirt (http://www.ovirt.org), make extensive use 
of thin-provisioned disk images.
  In order to let the guest run flawlessly and be not unnecessarily paused, 
oVirt sets a watermark and automatically resized the image once the watermark 
is reached or exceeded.

  In order to detect the mark crossing, the managing application has no choice 
than aggressively polling the QEMU monitor
  using the query-blockstats command. This lead to unnecessary system load, and 
is made even worse under scale: scenarios
  with hunderds of VM are becoming not unusual.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1338957/+subscriptions



[Qemu-devel] [Bug 1332297] Re: qemu-img: crash on check of an image with large value in the 'size' header field

2017-10-28 Thread Thomas Huth
QEMU nowadays seems to report "Check failed: Cannot allocate memory" ...
so I assume that is OK and we can now close this bug?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1332297

Title:
  qemu-img: crash on check of an image with large value in the 'size'
  header field

Status in QEMU:
  Incomplete

Bug description:
  The qemu-img crashes on the next command:

  qemu-img check test_image

  'test_image' can be found in the attachment. It's a fuzzed test image
  with the qcow2 image header only. Suppositional cause of the failure
  is the value of 'size' header field set to maximum uint_64 value.

  System information:

  qemu.git: 6baa963f4dcc2118
  Host: Linux 3.14.7-200.fc20.x86_64 #1 SMP Wed Jun 11 22:38:05 UTC 2014 x86_64 
 GNU/Linux

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1332297/+subscriptions



[Qemu-devel] [Bug 1338591] Re: Cursor jumps on shape change with vmware vga

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?


** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1338591

Title:
  Cursor jumps on shape change with vmware vga

Status in QEMU:
  Incomplete

Bug description:
  I launch QEMU with the following command line:

  qemu-system-i386 /home/ruslan/iso/Windoze/qemuxp.img -m 512 -display
  sdl -vga vmware -enable-kvm

  The guest OS is Windows XP. To reproduce the problem, do this:

  0. Make sure guest is WinXP (don't know if it's really necessary), use vmware 
VGA
  1. Set mouse cursor theme to default black&white theme, i.e. that without any 
translucency etc.
  2. Open a text editor, e.g. built-in notepad
  3. Move the cursor inside text entry widget
  4. See the cursor jumping away. You basically can't enter the cursor there.

  This also reproduces with MS Word 2003 even with oxy-white cursor
  theme (i.e. that with translucency) — seems Word uses its plain
  black&transparent cursor for I-beam cursor.

  This doesn't happen with other VGAs, i.e. cirrus and std.

  I used qemu git master to test this. qemu-system-i386 --version
  reports version 2.0.90, git describe says v2.1.0-rc0-1-g9d9de25. This
  also happened in earlier QEMU versions, like 1.5.x and older.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1338591/+subscriptions



[Qemu-devel] [Bug 1307225] Re: Running a virtual machine on a Haswell system produces machine check events

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1307225

Title:
  Running a virtual machine on a Haswell system produces machine check
  events

Status in QEMU:
  Incomplete

Bug description:
  I'm running a virtual Windows SBS 2003 installation on a Xeon E3
  Haswell system running Gentoo Linux. First, I used Qemu 1.5.3 (the
  latest stable version on Gentoo). I got a lot of machine check events
  ("mce: [Hardware Error]: Machine check events logged") in dmesg that
  always looked like (using mcelog):

  Hardware event. This is not a software error.
  MCE 0
  CPU 3 BANK 0
  TIME 1397455091 Mon Apr 14 07:58:11 2014
  MCG status:
  MCi status:
  Corrected error
  Error enabled
  MCA: Internal parity error
  STATUS 904f0005 MCGSTATUS 0
  MCGCAP c09 APICID 6 SOCKETID 0
  CPUID Vendor Intel Family 6 Model 60

  I found this discussion on the vmware community:
  https://communities.vmware.com/thread/452344

  It seems that this is (at least partly) caused by the Qemu machine. I
  switched to Qemu 1.7.0, the first version to use "pc-i440fx-1.7". With
  this version, the errors almost disappeared, but from time to time, I
  still get machine check events. Anyways, they so not seem to affect
  neither the vm, nor the host.

  The Haswell machine has been set up and running for several days
  without a single error message. They only appear when the VM is
  running. so I think this is actually some problem with the Haswell
  architecture (and not a real hardware error).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1307225/+subscriptions



[Qemu-devel] [Bug 1318091] Re: Perfctr MSRs not available to Guest OS on AMD Phenom II

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1318091

Title:
  Perfctr MSRs not available to Guest OS on AMD Phenom II

Status in QEMU:
  Incomplete

Bug description:
  The  AMD Phenom(tm) II X4 965 Processor (family 16, model 4, stepping
  3) has the 4 architecturally supported perf counters at MSRs.  The
  selectors are c001000-c001003, and the counters are c001004-c001007.
  I've verified that the MSRs are there and working by manually setting
  the MSRs with msr-tools to count cycles.

  The processor does not support the extended perfctr or the perfctr_nb.
  These are in cpuid leaf 8000_0001.  Qemu also sees that these cpuid
  flags are not set, when I try launching with  -cpu
  host,perfctr_core,check.  However, this flag is only for the extended
  perfctr MSRs, which also happen to map the original four counters at
  c0010200.

  When I run a Guest OS, that OS is unable to use the perf counter
  registers from c001000-7.  rdmsr and wrmsr complete, but the results
  are always 0.  By contrast, a wrmsr to one of the c0010200 registers
  causes a general protection fault (as it should, since those aren't
  supported).

  Kernel: 3.14.0-gentoo
  Qemu: 2.0.0 (gentoo) and also with 2.0.50 (commit 06b4f00d5)
  Qemu command: qemu-system-x86_64 -enable-kvm -cpu host -smp 8 -m 1024 
-nographic -monitor /dev/pts/4 mnt/hdd.img
  cat /proc/cpuinfo:
  processor : 3
  vendor_id : AuthenticAMD
  cpu family: 16
  model : 4
  model name: AMD Phenom(tm) II X4 965 Processor
  stepping  : 3
  cpu MHz   : 800.000
  cache size: 512 KB
  physical id   : 0
  siblings  : 4
  core id   : 3
  cpu cores : 4
  apicid: 3
  initial apicid: 3
  fpu   : yes
  fpu_exception : yes
  cpuid level   : 5
  wp: yes
  flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb 
rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni 
monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 
misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate npt lbrv svm_lock 
nrip_save
  bogomips  : 6803.79
  TLB size  : 1024 4K pages
  clflush size  : 64
  cache_alignment   : 64
  address sizes : 48 bits physical, 48 bits virtual
  power management: ts ttp tm stc 100mhzsteps hwpstate

  thanks.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1318091/+subscriptions



[Qemu-devel] [Bug 1314857] Re: seg fault in ivshmem when using ioeventfd=on

2017-10-28 Thread Thomas Huth
Fix had been included here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=e9d21c436f716603b3

** Changed in: qemu
   Status: New => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1314857

Title:
  seg fault in ivshmem when using ioeventfd=on

Status in QEMU:
  Fix Released
Status in qemu-kvm package in Ubuntu:
  Confirmed

Bug description:
  When launching qemu with the ivshmem device and the nahanni guest
  server there is segmentation fault in the setup_ioeventfds function of
  ivshmem.c. If the ioeventfd=on flag is set the pci_ivshmem_init will
  call setup_ioeventfds at line 668. This function relies on the 'peers'
  member of the server info which is not allocated until line 669.

  To reproduce you will need the nahanni guest server code. The driver
  code is not needed. You will also need a qcow2 or other bootable image
  to use for launching qemu. The error occurs before the actual image
  launch.

  Start the nahanni ivshmem server with a small global memory space ( although 
the bug is not allocation specific )
  ivshmem -m 1 -n 2 -p /tmp/ivshmem_socket

  Next launch qemu with initialization for the ivshmem device.
  qemu-system-x86_64 -hda test_iso.qcow2 -localtime -boot c -chardev 
socket,path="/tmp/ivshmem_socket",id=ivshmem_socket -device 
ivshmem,chardev=ivshmem_socket,size=1,ioeventfd=on

  If gdb is used the following error is recorded:
  Program received signal SIGSEGV, Segmentation fault.
  0x5579dd52 in setup_ioeventfds (s=0x56619580)
  at /home/genes/work/ubuntu/qemu-kvm-1.0+noroms/hw/ivshmem.c:367
  367 for (j = 0; j < s->peers[i].nb_eventfds; j++) {
  (gdb) print s->peers
  $2 = (Peer *) 0x0

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1314857/+subscriptions



[Qemu-devel] [Bug 1297781] Re: Network device cannot communicate with host machine

2017-10-28 Thread Thomas Huth
Triaging old bug tickets ... How did you start QEMU here? Can you still
reproduce this issue with the latest version of QEMU?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1297781

Title:
  Network device cannot communicate with host machine

Status in QEMU:
  Incomplete

Bug description:
  I know this used to work but it doesnt work any more using qemu 1.4.2  on 
fedora 19 everything works fine
  except when i add a NIC sharing the main interface from the host (not the 
virtual network)

  the hosts ip is 10.0.0.4, the router is 10.0.0.1 so when i boot my virtual 
machine it gets an ip from the router no problem 
  i get on the internet fine, and i can connect (ping,ftp, samba whatever) to 
all the computers on the network except the host
  10.0.0.4 i can't ping it, i cant do anything to it, but i can connect to all 
the other computers on the network and i know i used to be able to do this 
because thats how i shared files between the host and windows guest, with 
samba... but now i can't browse the host computer because it can't 
communicate... please help.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1297781/+subscriptions



[Qemu-devel] [Bug 1296882] Re: add next free device option to qemu-img

2017-10-28 Thread Thomas Huth
** Changed in: qemu
   Importance: Undecided => Wishlist

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1296882

Title:
  add next free device option to qemu-img

Status in QEMU:
  New

Bug description:
  I'd like to propose an option to be added to qemu-img which returns
  the next free NBD (the device file) very similar to losetup -f. It
  would make life a lot easier.

  Followers of this enhancement request might be interested in the
  following workaround: http://stackoverflow.com/questions/22535222
  /next-free-device-option-for-qemu-nbd/

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1296882/+subscriptions



[Qemu-devel] [Bug 1310714] Re: User mode networking SLIRP rapid memory leak

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1310714

Title:
  User mode networking SLIRP rapid memory leak

Status in QEMU:
  Incomplete

Bug description:
  QEMU compiled from git HEAD at
  2d03b49c3f225994c4b0b46146437d8c887d6774 and reproducible at tag
  v2.0.0. I first noticed this bug using Ubuntu Trusty's QEMU 2.0.0~rc1.
  I used to run QEMU 1.7 without this problem.

  This is the command I ran:

  qemu-system-x86_64 -enable-kvm -smp 2 -m 1G -usbdevice tablet -net
  nic,model=e1000 -net user -vnc localhost:99 -drive
  if=ide,file=test.img,cache=none -net nic -net user,tftp=/tmp/tftpdata
  -no-reboot

  The guest is Windows 7 64-bit. The VM starts off normally, but after a
  couple of minutes, the memory usage starts to swell. If let running,
  it eventually consumes all host memory and grinds the host to a halt
  due to heavy swapping.

  When running under gdb, I set a breakpoint on mmap, and this is the
  stack trace I obtained.

  Breakpoint 1, mmap64 () at ../sysdeps/unix/syscall-template.S:81
  81in ../sysdeps/unix/syscall-template.S
  (gdb) where
  #0  mmap64 () at ../sysdeps/unix/syscall-template.S:81
  #1  0x70e65091 in new_heap (size=135168, size@entry=1728, 
  top_pad=) at arena.c:554
  #2  0x70e687b2 in sysmalloc (av=0x7fffd020, nb=1664)
  at malloc.c:2386
  #3  _int_malloc (av=0x7fffd020, bytes=1650) at malloc.c:3740
  #4  0x70e69f50 in __GI___libc_malloc (bytes=1650) at malloc.c:2855
  #5  0x557a091a in m_get (slirp=0x561fe960)
  at /src/qemu/slirp/mbuf.c:73
  #6  0x557a3151 in slirp_input (slirp=0x561fe960, 
  pkt=0x77e94b20 "RU\n", pkt_len=)
  at /src/qemu/slirp/slirp.c:747
  #7  0x55758b24 in net_slirp_receive (nc=, 
  buf=, size=54) at /src/qemu/net/slirp.c:113
  #8  0x557567d1 in qemu_deliver_packet (sender=, 
  flags=, data=, size=, 
  opaque=) at /src/qemu/net/net.c:471
  #9  0x557588d3 in qemu_net_queue_deliver (size=54, 
  data=0x77e94b20 "RU\n", flags=0, sender=0x561fe5e0, 
  queue=0x561fe1d0) at /src/qemu/net/queue.c:157
  #10 qemu_net_queue_send (queue=0x561fe1d0, sender=0x561fe5e0, 
flags=0, 
  data=0x77e94b20 "RU\n", size=54, sent_cb=)
  at /src/qemu/net/queue.c:192
  ---Type  to continue, or q  to quit---
  #11 0x5575536b in net_hub_receive (len=54, buf=0x77e94b20 "RU\n", 
  source_port=0x561fe310, hub=) at /src/qemu/net/hub.c:55
  #12 net_hub_port_receive (nc=0x561fe310, buf=0x77e94b20 "RU\n", 
len=54)
  at /src/qemu/net/hub.c:114
  #13 0x557567d1 in qemu_deliver_packet (sender=, 
  flags=, data=, size=, 
  opaque=) at /src/qemu/net/net.c:471
  #14 0x557588d3 in qemu_net_queue_deliver (size=54, 
  data=0x77e94b20 "RU\n", flags=0, sender=0x56531920, 
  queue=0x561fe090) at /src/qemu/net/queue.c:157
  #15 qemu_net_queue_send (queue=0x561fe090, sender=0x56531920, 
flags=0, 
  data=0x77e94b20 "RU\n", size=54, sent_cb=)
  at /src/qemu/net/queue.c:192
  #16 0x556db95d in xmit_seg (s=0x77e72010)
  at /src/qemu/hw/net/e1000.c:628
  #17 0x556dbd38 in process_tx_desc (dp=0x7fffdf7fda30, 
s=0x77e72010)
  at /src/qemu/hw/net/e1000.c:723
  #18 start_xmit (s=0x77e72010) at /src/qemu/hw/net/e1000.c:778
  #19 set_tctl (s=0x77e72010, index=, val=)
  at /src/qemu/hw/net/e1000.c:1142
  #20 0x55840fb0 in access_with_adjusted_size (addr=14360, 
  value=0x7fffdf7fdb10, size=4, access_size_min=, 
  access_size_max=, 
  ---Type  to continue, or q  to quit---
  access=0x55841160 , mr=0x77e747c0)
  at /src/qemu/memory.c:478
  #21 0x558462fe in memory_region_dispatch_write (size=4, data=454, 
  addr=14360, mr=0x77e747c0) at /src/qemu/memory.c:990
  #22 io_mem_write (mr=0x77e747c0, addr=14360, val=, size=4)
  at /src/qemu/memory.c:1744
  #23 0x557e8717 in address_space_rw (
  as=0x56159c80 , addr=4273485848, 
  buf=0x77fed028 "\306\001", len=4, is_write=true)
  at /src/qemu/exec.c:2034
  #24 0x5583ff65 in kvm_cpu_exec (cpu=)
  at /src/qemu/kvm-all.c:1704
  #25 0x557ddb6c in qemu_kvm_cpu_thread_fn (arg=0x5651b730)
  at /src/qemu/cpus.c:873
  #26 0x711b6182 in start_thread (arg=0x7fffdf7fe700)
  at pthread_create.c:312
  #27 0x70ee1b2d in clone ()
  at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

  Let me know if you have any questions. Thanks.

  liulk

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1310714/+subscriptions



[Qemu-devel] [Bug 1288259] Re: KVM vms are paused and cannot be deleted due to hardware error 0x0

2017-10-28 Thread Thomas Huth
** Project changed: qemu => qemu (Ubuntu)

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1288259

Title:
  KVM vms are paused and cannot be deleted due to hardware error 0x0

Status in qemu package in Ubuntu:
  New

Bug description:
  Upon creation of instances via OpenStack nova api instances got stuck
  in spawning state. Then, after trying to delete instances they got
  stuck in deleting state. After investigation the following error was
  found:

  KVM: entry failed, hardware error 0x0
  EAX= EBX= ECX= EDX=0623
  ESI= EDI= EBP= ESP=
  EIP=fff0 EFL=0002 [---] CPL=3 II=0 A20=1 SMM=0 HLT=0
  ES =   9300
  CS =f000 000f  f300
  SS =   f300
  DS =   9300
  FS =   9300
  GS =   9300
  LDT=   8200
  TR =   8b00
  GDT=  
  IDT=  
  CR0=6010 CR2= CR3= CR4=
  DR0= DR1= DR2= 
DR3= 
  DR6=0ff0 DR7=0400
  EFER=
  Code=28 95 66 ba 01 4a 03 00 66 89 d8 66 5b 66 5e e9 15 79 66 c3  5b e0 
00 f0 30 36 2f 32 33 2f 39 39 00 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

  All instances were in paused state:
  root@node-7:~# virsh list
  setlocale: No such file or directory
   IdName   State
  
   4 instance-0004  paused
   5 instance-0005  paused
   6 instance-0006  paused
   7 instance-0007  paused
   8 instance-0008  paused
   9 instance-0009  paused

  The only way to delete VM is to reset it and then resume it. After this, VM 
is deleted properly. 
  OpenStack version: Havana on Ubuntu 12.04
  KVM version: QEMU emulator version 1.2.0 
(qemu-kvm-1.2.0+noroms-0ubuntu7.12.10, Debian), Copyright (c) 2003-2008 Fabrice 
Bellard

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1288259/+subscriptions



[Qemu-devel] [Bug 1292037] Re: Solaris 10 x86 guest crashes qemu with -icount 1 option

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1292037

Title:
  Solaris 10 x86 guest crashes qemu with -icount 1 option

Status in QEMU:
  Incomplete

Bug description:
  Solaris image: Solaris 10 x86 (32 bit)

  command: ./i386-softmmu/qemu-system-i386 -hda  -m 2G
  -icount 1 -monitor stdio

  Crashes saying:
  qemu: Fatal: Raised interrupt while not in I/O function

  Host:
  ubuntu x86_64 3.2.0-56 generic
  intel xeon E5649 @ 2.53GHz

  UPDATE:
  Tested on QEMU v2.0.50
  Also affects OpenIndiana (151a8 - Server Build 32bit)
  http://lists.gnu.org/archive/html/qemu-devel/2014-05/msg06365.html

  Workaround: Rename the kvmvapic.bin file under the pc-bios directory
  to something different.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1292037/+subscriptions



[Qemu-devel] [Bug 1279500] Re: system_powerdown causes SMP OpenBSD guest to freeze

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU and OpenBSD? Or could we close this ticket
nowadays?


** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1279500

Title:
  system_powerdown causes SMP OpenBSD guest to freeze

Status in QEMU:
  Incomplete

Bug description:
  system_powerdown causes an SMP OpenBSD guest to freeze. I can
  reproduce it with the following systems/versions:

- Debian 6: QEMU PC emulator version 0.12.5 (qemu-kvm-0.12.5)
- Fedora 20:
   qemu-system-x86-1.6.1 (from Fedora repository)
   qemu-1.7.0 (latest release version)
   qemu-1.7.50 (latest development snapshot, "git cloned" today, 20140212)

  all of the above hosts are running x86_64 linux.

  The first OpenBSD version that I ran as a VM, v5.1, experienced the
  problem. All subsequent versions experience the problem. The above
  tests were performed using OpenBSD v5.4 (amd64).

  I will open an OpenBSD bug report for this problem as well, and update
  this report with the OpenBSD bug ID.

  There's an interesting RedHat bug report concerning this problem:
URL: https://bugzilla.redhat.com/show_bug.cgi?id=508801#c34

  Here an excerpt:
  -snip-
  Gleb Natapov 2009-12-23 10:37:44 EST

  I posted patch to provide correct PCI irq routing info in mptable to kvm 
  mailing list. It works for all devices except for SCI interrupt. BIOS
  programs SCI interrupt to be 9 as spec requires, but OpenBSD thinks that
  it is smarter and moves it to interrupts 10. Qemu will still send it on
  vector 9 and OpenBSD will enter the same infinity recursion. This can
  be triggered by issuing system_powerdown on qemu monitor.
  -snip-

  Michael Tokarev reported this problem on the kvm mailing list in 2011:
URL: http://www.spinics.net/lists/kvm/msg51311.html

  I compiled qemu as follows:
  -snip-
  cd qemu-src-dir
  mkdir -p bin/native
  cd bin/native
  ../../configure \
--prefix=/usr/local/qemu-dev-snapshot-20140212 \
--target-list=x86_64-softmmu \
--enable-kvm \
--enable-spice \
--with-gtkabi="3.0" \
--audio-drv-list=pa,sdl,alsa,oss \
--extra-cflags='-I/usr/include/SDL'
  -snip-

  I'm running OpenBSD with the following command:
  -snip-
  #!/bin/bash

  DEF=/usr/bin/qemu-system-x86_64
  QEMU_LATEST=/usr/local/qemu-1.7.0/bin/qemu-system-x86_64
  QEMU_DEV=/usr/local/qemu-dev-snapshot-20140212/bin/qemu-system-x86_64

  $QEMU_DEV \
-machine accel=kvm \
-name obsdtest-v54 \
-S \
-machine pc-i440fx-1.6,accel=kvm,usb=off \
-boot c \
-m 2048 \
-realtime mlock=off \
-smp 2,sockets=2,cores=1,threads=1 \
-uuid 8b685793-2510-473e-b97e-822a4cf2fbca \
-no-user-config \
-monitor stdio \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=discard \
-no-hpet \
-drive 
file=/guest_images/obsdtest_v54.raw,if=none,id=drive-virtio-disk0,format=raw,cache=none
 \
-device 
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
 \
-drive if=none,id=drive-ide0-0-0,readonly=on,format=raw \
-device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-k en-us \
-device cirrus-vga,id=video0,bus=pci.0,addr=0x3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 \
-net nic \
-net user
  -snip-

  The OpenBSD disk image I used for testing is 143MB compressed, 10G
  uncompressed. It can be found here:

http://www.spielwiese.de/OpenBSD/obsd54.raw.7z

  The root password is "x".

  Rob Urban

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1279500/+subscriptions



[Qemu-devel] [Bug 1284874] Re: Guest hangs during option rom loading with certain cards

2017-10-28 Thread Thomas Huth
Patch seems to have been included here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=4b9430294ed406a00f045d

** Changed in: qemu
   Status: New => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1284874

Title:
  Guest hangs during option rom loading with certain cards

Status in QEMU:
  Fix Released

Bug description:
  With a Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet
  card, device assignment does not work. The guest hangs during option
  rom execution. Moreover, if an attempt is made to quit qemu when the
  guest is in the hung state, the card gets into an inoperable state.
  Only a powercycle then, restores the card back into working order,
  just unloading/loading the driver does not help.

  Qemu version  - 1.6.2 or current master
  Distribution - FC19
  Kernel Version - 3.12.9-201.fc19.x86_64

  Details of the card - 
   # ethtool -i p2p2
  driver: bnx2x
  version: 1.78.17-0
  firmware-version: bc 7.8.22
  bus-info: :08:00.1
  supports-statistics: yes
  supports-test: yes
  supports-eeprom-access: yes
  supports-register-dump: yes
  supports-priv-flags: yes

  The output of lspci when the card is broken -
  03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10 
Gigabit Ethernet (rev ff) (prog-if ff)
!!! Unknown header type 7f
Kernel driver in use: bnx2x
  00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

  I will post if I get a chance to try out a newer  than 7.8.22 for the
  option rom and see if this issue is fixed. However it appears we need
  to have a unified approach to automatically avoid loading the rom
  based on certain criteria.  Manually, looking out for fixes to
  firmware and hard coding decisions based on those is neither desirable
  nor easy to maintain.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1284874/+subscriptions



[Qemu-devel] [Bug 1307225] Re: Running a virtual machine on a Haswell system produces machine check events

2017-10-28 Thread Andrew Sabot via Qemu-devel
I'm not sure if this can still be reproduces but I've found a workaround
quite a while ago. The problem disappeared once I migrated the virtual
machines using 32 bit OS images to 64 bit. The mix of 32 and 64 bit VMs
was the causing these problems at least on my server.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1307225

Title:
  Running a virtual machine on a Haswell system produces machine check
  events

Status in QEMU:
  Incomplete

Bug description:
  I'm running a virtual Windows SBS 2003 installation on a Xeon E3
  Haswell system running Gentoo Linux. First, I used Qemu 1.5.3 (the
  latest stable version on Gentoo). I got a lot of machine check events
  ("mce: [Hardware Error]: Machine check events logged") in dmesg that
  always looked like (using mcelog):

  Hardware event. This is not a software error.
  MCE 0
  CPU 3 BANK 0
  TIME 1397455091 Mon Apr 14 07:58:11 2014
  MCG status:
  MCi status:
  Corrected error
  Error enabled
  MCA: Internal parity error
  STATUS 904f0005 MCGSTATUS 0
  MCGCAP c09 APICID 6 SOCKETID 0
  CPUID Vendor Intel Family 6 Model 60

  I found this discussion on the vmware community:
  https://communities.vmware.com/thread/452344

  It seems that this is (at least partly) caused by the Qemu machine. I
  switched to Qemu 1.7.0, the first version to use "pc-i440fx-1.7". With
  this version, the errors almost disappeared, but from time to time, I
  still get machine check events. Anyways, they so not seem to affect
  neither the vm, nor the host.

  The Haswell machine has been set up and running for several days
  without a single error message. They only appear when the VM is
  running. so I think this is actually some problem with the Haswell
  architecture (and not a real hardware error).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1307225/+subscriptions



[Qemu-devel] [Bug 1276879] Re: lots of dma command 10, 14 not supported

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?


** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1276879

Title:
  lots of dma command 10, 14 not supported

Status in QEMU:
  Incomplete

Bug description:
  Trying to install NeXTSTEP 3.3 onto a 2GB file with QEMU 1.7.0.
  In the terminal that started QEMU, there are a lot of
  dma: command 10 not supported
  and 
  dma: command 14 not supported
  messages.  When the installation of NeXTSTEP gets to
  'preparing disk for nextstep installation', there are a lot
  of messages that ATA command c5 failed and other info.
  The result is a failed installation.

  Is this a bug in QEMU?  Is there a workaround, e.g. by
  disabling DMA altogether?

  thank you

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1276879/+subscriptions



[Qemu-devel] [Bug 921208] Re: win7/x64 installer hangs on startup with 0x0000005d.

2017-10-28 Thread Thomas Huth
Since there hasn't been a reply within the last 5 months, I assume this
has been fixed and thus close now this ticket accordingly.

** Changed in: qemu
   Status: Incomplete => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/921208

Title:
  win7/x64 installer hangs on startup with 0x005d.

Status in QEMU:
  Fix Released
Status in qemu package in Ubuntu:
  Triaged

Bug description:
  hi,

  during booting win7/x64 installer i'm observing a bsod with 0x005d
  ( msdn: unsupported_processor ).

  used command line: qemu-system-x86_64 -m 2048 -hda w7-system.img
  -cdrom win7_x64.iso -boot d

  adding '-machine accel=kvm' instead of default tcg accel helps to
  boot.

  
  installed software:

  qemu-1.0
  linux-3.2.1
  glibc-2.14.1
  gcc-4.6.2

  hw cpu:

  processor   : 0..7
  vendor_id   : GenuineIntel
  cpu family  : 6
  model   : 42
  model name  : Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
  stepping: 7
  microcode   : 0x14
  cpu MHz : 1995.739
  cache size  : 6144 KB
  physical id : 0
  siblings: 8
  core id : 3
  cpu cores   : 4
  apicid  : 7
  initial apicid  : 7
  fpu : yes
  fpu_exception   : yes
  cpuid level : 13
  wp  : yes
  flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx 
rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology 
nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 
cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx 
lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
  bogomips: 3992.23
  clflush size: 64
  cache_alignment : 64
  address sizes   : 36 bits physical, 48 bits virtual

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/921208/+subscriptions



[Qemu-devel] [Bug 1272796] Re: Windows 98 First Edition emulation problems

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1272796

Title:
  Windows 98 First Edition emulation problems

Status in QEMU:
  Incomplete

Bug description:
  System: Debian SID x86 with latest updates

  1) QEMU compiled from latest main GIT branch(at the time of writing, 1.7.50) 
(and 1.7 stable version)
  ./configure options: ./configure --enable-sdl --target-list=i386-softmmu 
--cpu=i686 --audio-drv-list=alsa

  When you try to boot Windows 98 First Edition (Italian), it does not simply 
boot. It stays on booting screen.
  If you try to install, the installation goes flawless, but when it boots it 
freeze.

  I am launching VM with this: qemu-system-i386 -hda main.img -cpu
  pentium -m 256 -fda floppy1.img -boot c -soundhw gus -vga cirrus

  I have tried with -M option "pc-i440fx-1.6" since 1.6 have no problems
  with the booting of Win98, but nothing. No fix found.

  2) QEMU 1.6.2 (same compile and launching options)
  gus soundboard seems not recognized even with real dos drivers (tried to 
install theme into real dos mode).
  with SoundBlaster 16 i have following error: WARNING: I/O thread spun for 
1000 iterations, making the emulation impossible (too slow, and sound is 
stuttering) . Tried to compile with oss and sdl option on audio-drv-list but no 
fix found.

  Any ideas? thank you

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1272796/+subscriptions



[Qemu-devel] [Bug 1268279] Re: Windows 7 x86 does not start on 1.7.50 from git

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1268279

Title:
  Windows 7 x86 does not start on 1.7.50 from git

Status in QEMU:
  Incomplete

Bug description:
  I have "Debian 7.2 x64".

  Install last QEMU from git:

  aptitude install git gcc make autoconf libglib2.0-dev libcurl4-gnutls-
  dev libpixman-1-dev libcap-dev  libaio-dev libcap-ng-dev libjpeg8-dev
  libpng12-dev libssh2-1-dev uuid-dev

  #cd /usr/src
  #git clone git://git.qemu.org/qemu.git
  #cd qemu
  # ./configure --prefix=/usr  --sysconfdir=/etc --target-list=x86_64-softmmu  
--enable-kvm
  Install prefix/usr
  BIOS directory/usr/share/qemu
  binary directory  /usr/bin
  library directory /usr/lib
  libexec directory /usr/libexec
  include directory /usr/include
  config directory  /etc
  local state directory   /usr/var
  Manual directory  /usr/share/man
  ELF interp prefix /usr/gnemul/qemu-%M
  Source path   /usr/src/qemu
  C compilercc
  Host C compiler   cc
  C++ compiler  c++
  Objective-C compiler cc
  ARFLAGS   rv
  CFLAGS-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
  QEMU_CFLAGS   -Werror -fPIE -DPIE -m64 -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes 
-Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes 
-fno-strict-aliasing  -Wendif-labels -Wmissing-include-dirs -Wempty-body 
-Wnested-externs -Wformat-security -Wformat-y2k -Winit-self 
-Wignored-qualifiers -Wold-style-declaration -Wold-style-definition 
-Wtype-limits -fstack-protector-all -I/usr/include/p11-kit-1
-I/usr/include/libpng12 -I/usr/include/pixman-1
  LDFLAGS   -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
  make  make
  install   install
  pythonpython -B
  smbd  /usr/sbin/smbd
  host CPU  x86_64
  host big endian   no
  target list   x86_64-softmmu
  tcg debug enabled no
  gprof enabled no
  sparse enabledno
  strip binariesyes
  profiler  no
  static build  no
  -Werror enabled   yes
  pixmansystem
  SDL support   yes
  GTK support   no
  curses supportno
  curl support  yes
  mingw32 support   no
  Audio drivers oss
  Block whitelist (rw)
  Block whitelist (ro)
  VirtFS supportyes
  VNC support   yes
  VNC TLS support   yes
  VNC SASL support  no
  VNC JPEG support  yes
  VNC PNG support   yes
  VNC WS supportyes
  xen support   no
  brlapi supportno
  bluez  supportno
  Documentation yes
  GUEST_BASEyes
  PIE   yes
  vde support   no
  netmap supportno
  Linux AIO support yes
  ATTR/XATTR support yes
  Install blobs yes
  KVM support   yes
  RDMA support  no
  TCG interpreter   no
  fdt support   no
  preadv supportyes
  fdatasync yes
  madvise   yes
  posix_madvise yes
  sigev_thread_id   yes
  uuid support  yes
  libcap-ng support yes
  vhost-net support yes
  vhost-scsi support yes
  Trace backend nop
  Trace output file trace-
  spice support no (/)
  rbd support   no
  xfsctl supportno
  nss used  no
  libusbno
  usb net redir no
  GLX support   yes
  libiscsi support  no
  build guest agent yes
  QGA VSS support   no
  seccomp support   no
  coroutine backend ucontext
  coroutine poolyes
  GlusterFS support no
  virtio-blk-data-plane yes
  gcov  gcov
  gcov enabled  no
  TPM support   no
  libssh2 support   yes
  TPM passthrough   no
  QOM debugging yes
  vhdx  yes
  #make && make install

  QEMU is successfully builded and installed:

  # /usr/bin/qemu-system-x86_64 --version
  QEMU emulator version 1.7.50, Copyright (c) 2003-2008 Fabrice Bellard

  Create virtual HDD:

  # qemu-img create -f qcow2 /kvm/vm/test.img 50G
  Formatting '/kvm/vm/test.img', fmt=qcow2 size=53687091200 encryption=off 
cluster_size=65536 lazy_refcounts=off

  Start virtual machine:

   # /usr/bin/qemu-system-x86_64 -cpu qemu64 -M pc -smp 1 -m 1024
  -monitor tcp:127.0.0.1:,server,nowait -drive
  file=/kvm/vm/test.img,cache=writeback,aio=native -boot
  order=dc,menu=on -enable-kvm -vnc 127.0.0.1:14 -localtime -no-hpet
  -rtc-td-hack -global kvm-pit.lost_tick_policy=discard -daemonize -usb
  -device usb-tablet,id=input0 -runas kvm

  Connect ISO image:

  # nc 127.0.0.1 
  QEMU 1.7.50 monitor - type 'help' for more information
  (qemu) change ide1-cd0 
http://someiso.host.com/ru_windows_7_professional_with_sp1_x86_dvd.iso
  change ide1-cd0 
http://someiso.host.com/ru_windows_7_professional_with_sp1_x86_dvd.iso
  (qemu)

  Open NVC console to VM, reboot and boot (F12) from connected IS

[Qemu-devel] [Bug 1261743] Re: trace-backend "simple" doesn't support "disable" property of event

2017-10-28 Thread Thomas Huth
I assume Stefan's fix had been included (likely
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=736ec1677f1ae7e64f2f ?),
so I'm closing this ticket now. But if you still can reproduce this
issue, please let us know.

** Changed in: qemu
   Status: New => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1261743

Title:
  trace-backend "simple" doesn't support "disable" property of event

Status in QEMU:
  Fix Released

Bug description:
  trace-backend "simple" generates wrong eventid in trace/generated-
  tracers.c after "disable" property occured in trace-events record.

  Result: missing or mixing logs in trace file.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1261743/+subscriptions



[Qemu-devel] [Bug 1358287] Re: -readconfig file doesn't interpret memory size correctly

2017-10-28 Thread Christian Theune
Good question. Over time I've got some feedback that the whole config
file mechanism is really just a second class citizen anyway. I'm happy
for now (running 2.7) and don't really care too much.

Nevertheless: I'd be absolutely excited if I could reliably configure
(and have nice documentation that I'd even be willing to help create)
Qemu instances just with a config file ...

Feel free to close this issue to get rid of old cruft ... :)

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1358287

Title:
  -readconfig file doesn't interpret memory size correctly

Status in QEMU:
  Incomplete

Bug description:
  I'm running Qemu 2.1 and have issues with the config file format.

  Specifically Qemu wrote the following snippet with '-writeconfig':

  [memory]
size = "1024"

  However, upon starting a VM with this setting it only receives 128MiB
  (the default size).

  I'm reverting back to using the command line option now - that works.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1358287/+subscriptions



[Qemu-devel] [Bug 1247478] Re: usb passthrough mass storage write data corruption

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays? Did you
report it to the libusb folks?

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1247478

Title:
  usb passthrough mass storage write data corruption

Status in QEMU:
  New

Bug description:
  the windows 7 professional guest writes to usb high speed mass storage 
devices connected via host-libusb
  in bulk packages of either size 20480 or 4096 (as far as the actual file data 
is concerned and
  except for the last packet for odd-sized files). The pattern is:
  3 times bulk out 20480
  1 time bulk out 4096

  and that repeats for files longer than 65536 bytes.

  the file on the usb disk is corrupted and it is always corrupt in the last 
4096 bytes of each
  20480 byte sized transfer. that means a file is corrupt at 16384-20480 and 
36864-40960 and
  57344-61440.
  and so on. and because the 4096 sized  bulk out is always error free, the 
next corrupt span is from
  81920-86016.

  the last 4096 bytes of the 20480 sized transfer is always identical to the 
first 4096 bytes of the same
  transfer.

  to reproduce: run windows7 guest on and pass through usb2.0 disk with 
host-libusb. write a large file.
  (possibly check the bulk transfer sizes with usbmon).
  note that attaching usb disks with hw/usb/dev-storage does work just fine.
  cannot reproduce with linux as it always writes just 4096 bytes and writes 
with a linux guest are
  always ok even with usb passthrough.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1247478/+subscriptions



[Qemu-devel] [Bug 1247478] Re: usb passthrough mass storage write data corruption

2017-10-28 Thread Thomas Huth
** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1247478

Title:
  usb passthrough mass storage write data corruption

Status in QEMU:
  Incomplete

Bug description:
  the windows 7 professional guest writes to usb high speed mass storage 
devices connected via host-libusb
  in bulk packages of either size 20480 or 4096 (as far as the actual file data 
is concerned and
  except for the last packet for odd-sized files). The pattern is:
  3 times bulk out 20480
  1 time bulk out 4096

  and that repeats for files longer than 65536 bytes.

  the file on the usb disk is corrupted and it is always corrupt in the last 
4096 bytes of each
  20480 byte sized transfer. that means a file is corrupt at 16384-20480 and 
36864-40960 and
  57344-61440.
  and so on. and because the 4096 sized  bulk out is always error free, the 
next corrupt span is from
  81920-86016.

  the last 4096 bytes of the 20480 sized transfer is always identical to the 
first 4096 bytes of the same
  transfer.

  to reproduce: run windows7 guest on and pass through usb2.0 disk with 
host-libusb. write a large file.
  (possibly check the bulk transfer sizes with usbmon).
  note that attaching usb disks with hw/usb/dev-storage does work just fine.
  cannot reproduce with linux as it always writes just 4096 bytes and writes 
with a linux guest are
  always ok even with usb passthrough.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1247478/+subscriptions



[Qemu-devel] [Bug 1246990] Re: [qemu-x86-64-linux-user 1.6.1] qemu: uncaught target signal 11 (Segmentation fault) - core dumped

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1246990

Title:
  [qemu-x86-64-linux-user 1.6.1] qemu: uncaught target signal 11
  (Segmentation fault) - core dumped

Status in QEMU:
  Incomplete
Status in qemu package in Ubuntu:
  Confirmed

Bug description:
  Rjsupplicant is an authentication client of Campus Network in most
  universities in China. Its Linux version has only x86 and amd64
  version.

  On linux:

  ./qemu-x86_64 is compiled from latest qemu 1.6.1, with ./configure
  options: --enable-debug --target-list=x86_64-linux-user . Compiler is
  gcc version 4.7.3 (Debian 4.7.3-4)

  $ sudo ./qemu-x86_64  ./rjsupplicant -n eth0 -u USER -p PASS -d 1 -s internet 
  qemu: uncaught target signal 11 (Segmentation fault) - core dumped

  $ sudo gdb ./qemu-x86_64
  (gdb) r ./rjsupplicant -n eth0 -u USER -p PASS -d 1 -s internet
  (gdb) where
  #0  0x559c21bd in static_code_gen_buffer ()
  #1  0x555b74d5 in cpu_tb_exec (cpu=0x57972580, 
tb_ptr=0x559c2190  
"A\213n\250\205\355\017\205\257")
  at /home/USER/x/rjsupplicant/x64/qemu-1.6.1/cpu-exec.c:56
  #2  0x555b817d in cpu_x86_exec (env=0x579726b0) at 
/home/USER/x/rjsupplicant/x64/qemu-1.6.1/cpu-exec.c:631
  #3  0x555d997a in cpu_loop (env=0x579726b0) at 
/home/USER/x/rjsupplicant/x64/qemu-1.6.1/linux-user/main.c:283
  #4  0x555eca6b in clone_func (arg=0x7fffc1d0) at 
/home/USER/x/rjsupplicant/x64/qemu-1.6.1/linux-user/syscall.c:4266
  #5  0x771bfe0e in start_thread (arg=0x77f04700) at 
pthread_create.c:311
  #6  0x76ef493d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

  $ file rjsupplicant 
  rjsupplicant: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

  $ uname -r
  3.10-2-amd64

  
  And it can be run on Linux amd64 successfully.

  Though I don't have the source code of rjsupplicant, so I don't have
  further information.

  `qemu-x86_64 -strace ./rjsupplicant -n eth0 -u USER -p PASS -d 1 -s
  internet` is attached as strace_qemu.log

  
  The binary is available to download at http://ge.tt/6pgG1tw/v/0

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1246990/+subscriptions



[Qemu-devel] [Bug 1239008] Re: qemu fails to scroll screen on ^Vidmem output

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?

** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1239008

Title:
  qemu fails to scroll screen on ^Vidmem output

Status in QEMU:
  Incomplete
Status in qemu package in Ubuntu:
  Incomplete

Bug description:
  Pascal uses ^Vidmem for B800 console output. The terminal does not
  oblige the Pascal OS code to scroll the output. Virtualbox emulation
  works, so this must be a qemu bug. Using QEMU in KVM mode as Ubuntu
  LTS.

  Source line to trip bug(in theory pushes VideoMem up one line):

  procedure Scroll;
  //this is whats causing crashes. FIXME:Virtualbox not affected.QEMU BUG?
  begin
if scrolldisabled then exit;
if (CursorPosY >= 24) then begin  //in case called before end of screen
  blank:= $20 or (TextAttr shl 8);
  Move((VidMem+(2*80))^,VidMem^,24*(2*80));
  // Empty last line
  FillWord((VidMem+(24*2*80))^,80,Blank);
  CursorPosX:=1;
  CursorPosY:=23;
  update_cursor;
end;
  end;

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1239008/+subscriptions



[Qemu-devel] [Bug 1007490] Re: Missing binfmt string for init script.

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?


** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1007490

Title:
  Missing binfmt string for init script.

Status in QEMU:
  Incomplete

Bug description:
  ./scripts/qemu-binfmt-conf.sh

  needs

  echo
  
':armCompiler:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin
  /qemu-static-arm-binfmt:P' > /proc/sys/fs/binfmt_misc/register

  Some executables (specifically compilers like /usr/libexec/gcc/armv7a-
  unknown-linux-gnueabi/4.5.3/cc1 on gentoo) have unusual headers, and
  don't get recognized as arm binaries.

  Bug also mentioned on my blog:
  
http://mirage335.dyndns.org/forums/viewtopic.php?f=4&t=11&sid=01f0ca9cc76c78b6f600fa25cc99d62b

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1007490/+subscriptions



[Qemu-devel] [Bug 902720] Re: TIME_MAX not set correctly for OpenBSD in qemu-common.h

2017-10-28 Thread Thomas Huth
Triaging old bug tickets... can you still reproduce this issue with the
latest version of QEMU? Or could we close this ticket nowadays?


** Changed in: qemu
   Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/902720

Title:
  TIME_MAX not set correctly for OpenBSD in qemu-common.h

Status in QEMU:
  Incomplete

Bug description:
  Looking at the OpenBSD buildbot logs I noticed a warning that appears to be a 
bug in the code.
  OpenBSD has a 32-bit time_t on all archs at the moment (32-bit and 64-bit).

CCi386-softmmu/monitor.o
  /buildbot-qemu/default_openbsd_current/build/monitor.c: In function 
'expire_password':
  /buildbot-qemu/default_openbsd_current/build/monitor.c:944: warning: overflow 
in implicit constant conversion

  qemu-common.h has...

  #ifndef TIME_MAX
  #define TIME_MAX LONG_MAX
  #endif

  for OpenBSD this should be INT_MAX.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/902720/+subscriptions



[Qemu-devel] [Bug 1307225] Re: Running a virtual machine on a Haswell system produces machine check events

2017-10-28 Thread Tobias-leupold
Last time I saw this error in my mcelog was in August. Probably, some
update fixed it. I'll check the next days/weeks if I still see it. This
is a quite long time, at the time of my original bug report, I got the
errors multiple times a day and later multiple times a week.

About the workaround moving to 64 bit OS images: Well, if you're (like
in my case) stuck with dinosaur OS (Windows SBS 2003), there's no way to
simply move to a 64 bit image ;-)

But as said: I think it simply disappeared by some update. I'm using
2.10.0 at the moment.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1307225

Title:
  Running a virtual machine on a Haswell system produces machine check
  events

Status in QEMU:
  Incomplete

Bug description:
  I'm running a virtual Windows SBS 2003 installation on a Xeon E3
  Haswell system running Gentoo Linux. First, I used Qemu 1.5.3 (the
  latest stable version on Gentoo). I got a lot of machine check events
  ("mce: [Hardware Error]: Machine check events logged") in dmesg that
  always looked like (using mcelog):

  Hardware event. This is not a software error.
  MCE 0
  CPU 3 BANK 0
  TIME 1397455091 Mon Apr 14 07:58:11 2014
  MCG status:
  MCi status:
  Corrected error
  Error enabled
  MCA: Internal parity error
  STATUS 904f0005 MCGSTATUS 0
  MCGCAP c09 APICID 6 SOCKETID 0
  CPUID Vendor Intel Family 6 Model 60

  I found this discussion on the vmware community:
  https://communities.vmware.com/thread/452344

  It seems that this is (at least partly) caused by the Qemu machine. I
  switched to Qemu 1.7.0, the first version to use "pc-i440fx-1.7". With
  this version, the errors almost disappeared, but from time to time, I
  still get machine check events. Anyways, they so not seem to affect
  neither the vm, nor the host.

  The Haswell machine has been set up and running for several days
  without a single error message. They only appear when the VM is
  running. so I think this is actually some problem with the Haswell
  architecture (and not a real hardware error).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1307225/+subscriptions



Re: [Qemu-devel] [Qemu-block][PATCH] qemu-block: add support HMB with feature commands.

2017-10-28 Thread Minwoo Im
I'll send a patch only when there is a clear real use case.
Thanks for your reply.

On Mon, Oct 23, 2017 at 11:30 PM, Keith Busch  wrote:
> On Sat, Oct 21, 2017 at 03:54:16PM +0900, Minwoo Im wrote:
>> Add support HMB(Host Memory Block) with feature commands(Get Feature, Set 
>> Feature).
>> nvme-4.14 tree supports HMB features.
>> This patch will make nvme controller to return 32MiB preferred size of HMB 
>> to host via identify command.
>> Set Feature, Get Feature implemented for HMB.
>>
>> Signed-off-by: Minwoo Im 
>
> Nak; this patch doesn't have a use for host memory. It's just advertising
> the need without ever accessing it.



Re: [Qemu-devel] [Qemu-block] [PATCH] qemu-block: add support HMB with feature commands.

2017-10-28 Thread Minwoo Im
On Tue, Oct 24, 2017 at 1:18 AM, Stefan Hajnoczi  wrote:
> On Sat, Oct 21, 2017 at 03:54:16PM +0900, Minwoo Im wrote:
>> Add support HMB(Host Memory Block) with feature commands(Get Feature, Set 
>> Feature).
>> nvme-4.14 tree supports HMB features.
>> This patch will make nvme controller to return 32MiB preferred size of HMB 
>> to host via identify command.
>> Set Feature, Get Feature implemented for HMB.
>>
>> Signed-off-by: Minwoo Im 
>> ---
>>  hw/block/nvme.c | 35 +++
>>  hw/block/nvme.h | 21 -
>>  2 files changed, 55 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
>> index 6071dc1..d351781 100644
>> --- a/hw/block/nvme.c
>> +++ b/hw/block/nvme.c
>> @@ -605,6 +605,23 @@ static uint16_t nvme_identify(NvmeCtrl *n, NvmeCmd *cmd)
>>  }
>>  }
>>
>> +static uint32_t nvme_get_feature_hmb(NvmeCtrl *n, NvmeCmd *cmd)
>> +{
>> +uint32_t result = n->hmb_flag.flag;
>> +uint64_t prp1 = le64_to_cpu(cmd->prp1);
>> +uint64_t prp2 = le64_to_cpu(cmd->prp2);
>> +NvmeHmbAttr attr = {0, };
>> +
>> +attr.hsize = cpu_to_le32(n->hmb_attr.hsize);
>> +attr.hmdlal = cpu_to_le32(n->hmb_attr.hmdlal);
>> +attr.hmdlau = cpu_to_le32(n->hmb_attr.hmdlau);
>> +attr.hmdlec = cpu_to_le32(n->hmb_attr.hmdlec);
>> +
>> +nvme_dma_read_prp(n, (uint8_t *)&attr, sizeof(attr), prp1, prp2);
>
> This read can fail if prp1/prp2 are invalid.  How should the error be
> reported?

either or both prp1 and prp2 failed, there's no error handling in this code.
agreed it needs to be implemented if this code will be sent as a patch.

>
>> +
>> +return result;
>> +}
>> +
>>  static uint16_t nvme_get_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest 
>> *req)
>>  {
>>  uint32_t dw10 = le32_to_cpu(cmd->cdw10);
>> @@ -617,6 +634,9 @@ static uint16_t nvme_get_feature(NvmeCtrl *n, NvmeCmd 
>> *cmd, NvmeRequest *req)
>>  case NVME_NUMBER_OF_QUEUES:
>>  result = cpu_to_le32((n->num_queues - 1) | ((n->num_queues - 1) << 
>> 16));
>>  break;
>> +case NVME_HOST_MEMORY_BUFFER:
>> +result = nvme_get_feature_hmb(n, cmd);
>> +break;
>>  default:
>>  return NVME_INVALID_FIELD | NVME_DNR;
>>  }
>> @@ -625,6 +645,16 @@ static uint16_t nvme_get_feature(NvmeCtrl *n, NvmeCmd 
>> *cmd, NvmeRequest *req)
>>  return NVME_SUCCESS;
>>  }
>>
>> +static void nvme_set_feature_hmb(NvmeCtrl *n, NvmeCmd *cmd)
>> +{
>> +n->hmb_flag.flag = le32_to_cpu(cmd->cdw11);
>> +
>> +n->hmb_attr.hsize = le32_to_cpu(cmd->cdw12);
>> +n->hmb_attr.hmdlal = le32_to_cpu(cmd->cdw13);
>> +n->hmb_attr.hmdlau = le32_to_cpu(cmd->cdw14);
>> +n->hmb_attr.hmdlec = le32_to_cpu(cmd->cdw15);
>> +}
>> +
>>  static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd *cmd, NvmeRequest 
>> *req)
>>  {
>>  uint32_t dw10 = le32_to_cpu(cmd->cdw10);
>> @@ -638,6 +668,9 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd 
>> *cmd, NvmeRequest *req)
>>  req->cqe.result =
>>  cpu_to_le32((n->num_queues - 1) | ((n->num_queues - 1) << 16));
>>  break;
>> +case NVME_HOST_MEMORY_BUFFER:
>> +nvme_set_feature_hmb(n, cmd);
>> +break;
>>  default:
>>  return NVME_INVALID_FIELD | NVME_DNR;
>>  }
>> @@ -985,6 +1018,8 @@ static int nvme_init(PCIDevice *pci_dev)
>>  id->oacs = cpu_to_le16(0);
>>  id->frmw = 7 << 1;
>>  id->lpa = 1 << 0;
>> +id->hmpre = 0x2000;
>
> Missing cpu_to_le32()?

agreed hmpre should be set with le32 instead of raw value.

>
>> +id->hmmin = 0x0;
>>  id->sqes = (0x6 << 4) | 0x6;
>>  id->cqes = (0x4 << 4) | 0x4;
>>  id->nn = cpu_to_le32(n->num_namespaces);
>> diff --git a/hw/block/nvme.h b/hw/block/nvme.h
>> index 6aab338..fab748b 100644
>> --- a/hw/block/nvme.h
>> +++ b/hw/block/nvme.h
>> @@ -552,7 +552,10 @@ typedef struct NvmeIdCtrl {
>>  uint8_t lpa;
>>  uint8_t elpe;
>>  uint8_t npss;
>> -uint8_t rsvd511[248];
>> +uint8_t rsvd271[8];
>> +uint32_thmpre;
>> +uint32_thmmin;
>> +uint8_t rsvd511[232];
>>  uint8_t sqes;
>>  uint8_t cqes;
>>  uint16_trsvd515;
>> @@ -623,9 +626,22 @@ enum NvmeFeatureIds {
>>  NVME_INTERRUPT_VECTOR_CONF  = 0x9,
>>  NVME_WRITE_ATOMICITY= 0xa,
>>  NVME_ASYNCHRONOUS_EVENT_CONF= 0xb,
>> +NVME_HOST_MEMORY_BUFFER = 0xd,
>>  NVME_SOFTWARE_PROGRESS_MARKER   = 0x80
>>  };
>>
>> +typedef struct NvmeHmbFlag {
>> +uint32_tflag;
>> +} NvmeHmbFlag;
>> +
>> +typedef struct NvmeHmbAttr {
>> +uint32_thsize;
>> +uint32_thmdlal;
>> +uint32_thmdlau;
>> +uint32_thmdlec;
>> +uint8_t rsvd4095[4080];
>> +} NvmeHmbAttr;
>> +
>>  typedef struct NvmeRangeType {
>>  uint8_t type;
>>  uint8_t attributes;
>> @@ -776,6 +792,9 @@ typedef struct NvmeCtrl {
>>  uint32_tcmbloc;
>>  uint8_t *cmbuf;
>>
>> +  

[Qemu-devel] [Bug 1338591] Re: Cursor jumps on shape change with vmware vga

2017-10-28 Thread Ruslan
I still reproduce this with QEMU v2.10.0-1649-ga93ece4.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1338591

Title:
  Cursor jumps on shape change with vmware vga

Status in QEMU:
  Incomplete

Bug description:
  I launch QEMU with the following command line:

  qemu-system-i386 /home/ruslan/iso/Windoze/qemuxp.img -m 512 -display
  sdl -vga vmware -enable-kvm

  The guest OS is Windows XP. To reproduce the problem, do this:

  0. Make sure guest is WinXP (don't know if it's really necessary), use vmware 
VGA
  1. Set mouse cursor theme to default black&white theme, i.e. that without any 
translucency etc.
  2. Open a text editor, e.g. built-in notepad
  3. Move the cursor inside text entry widget
  4. See the cursor jumping away. You basically can't enter the cursor there.

  This also reproduces with MS Word 2003 even with oxy-white cursor
  theme (i.e. that with translucency) — seems Word uses its plain
  black&transparent cursor for I-beam cursor.

  This doesn't happen with other VGAs, i.e. cirrus and std.

  I used qemu git master to test this. qemu-system-i386 --version
  reports version 2.0.90, git describe says v2.1.0-rc0-1-g9d9de25. This
  also happened in earlier QEMU versions, like 1.5.x and older.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1338591/+subscriptions



[Qemu-devel] [Bug 902720] Re: TIME_MAX not set correctly for OpenBSD in qemu-common.h

2017-10-28 Thread Brad Smith
Since this bug report was filed OpenBSD has switched from 32-bit time_t
to 64-bit time_t on all archs (yes, including 32-bit archs like i386,
arm, powerpc). So instead of INT_MAX TIME_MAX should now be set to
LLONG_MAX.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/902720

Title:
  TIME_MAX not set correctly for OpenBSD in qemu-common.h

Status in QEMU:
  Incomplete

Bug description:
  Looking at the OpenBSD buildbot logs I noticed a warning that appears to be a 
bug in the code.
  OpenBSD has a 32-bit time_t on all archs at the moment (32-bit and 64-bit).

CCi386-softmmu/monitor.o
  /buildbot-qemu/default_openbsd_current/build/monitor.c: In function 
'expire_password':
  /buildbot-qemu/default_openbsd_current/build/monitor.c:944: warning: overflow 
in implicit constant conversion

  qemu-common.h has...

  #ifndef TIME_MAX
  #define TIME_MAX LONG_MAX
  #endif

  for OpenBSD this should be INT_MAX.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/902720/+subscriptions



[Qemu-devel] [Bug 1728256] [NEW] (Regression) Memory corruption in Windows 10 guest / amd64

2017-10-28 Thread Wüstengecko
Public bug reported:

I have a Win 10 Pro x64 guest inside a qemu/kvm running on an Arch x86_64 host. 
The VM has a physical GPU passed through, as well as the physical USB 
controllers, as well as a dedicated SSD attached via SATA; you can find the 
complete libvirt xml here: https://pastebin.com/U1ZAXBNg
I built qemu from source using the qemu-minimal-git AUR package; you can find 
the build script here: 
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=qemu-minimal-git (if you 
aren't familiar with Arch, this is essentially a bash script where build() and 
package() are run to build the files, and then install them into the $pkgdir to 
later tar them up.)

Starting with qemu v2.10.0, Windows crashes randomly with a bluescreen
about CRITICAL_STRUCTURE_CORRUPTION. I also tested the git heads
f90ea7ba7c, 861cd431c9 and e822e81e35, before I went back to v2.9.0,
which is running stable for over 50 hours right now.

During my tests I found that locking the memory pages alleviates the
problem somewhat, but never completely avoids it. However, with the
crashes occuring randomly, that could as well be false conclusions; I
had crashes within minutes after boot with that too.

I will now start `git bisect`ing; if you have any other suggestions on
what I could try or possible patches feel free to leave them with me.

** Affects: qemu
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1728256

Title:
  (Regression) Memory corruption in Windows 10 guest / amd64

Status in QEMU:
  New

Bug description:
  I have a Win 10 Pro x64 guest inside a qemu/kvm running on an Arch x86_64 
host. The VM has a physical GPU passed through, as well as the physical USB 
controllers, as well as a dedicated SSD attached via SATA; you can find the 
complete libvirt xml here: https://pastebin.com/U1ZAXBNg
  I built qemu from source using the qemu-minimal-git AUR package; you can find 
the build script here: 
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=qemu-minimal-git (if you 
aren't familiar with Arch, this is essentially a bash script where build() and 
package() are run to build the files, and then install them into the $pkgdir to 
later tar them up.)

  Starting with qemu v2.10.0, Windows crashes randomly with a bluescreen
  about CRITICAL_STRUCTURE_CORRUPTION. I also tested the git heads
  f90ea7ba7c, 861cd431c9 and e822e81e35, before I went back to v2.9.0,
  which is running stable for over 50 hours right now.

  During my tests I found that locking the memory pages alleviates the
  problem somewhat, but never completely avoids it. However, with the
  crashes occuring randomly, that could as well be false conclusions; I
  had crashes within minutes after boot with that too.

  I will now start `git bisect`ing; if you have any other suggestions on
  what I could try or possible patches feel free to leave them with me.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1728256/+subscriptions



[Qemu-devel] [Bug 1338591] Re: Cursor jumps on shape change with vmware vga

2017-10-28 Thread Thomas Huth
** Changed in: qemu
   Status: Incomplete => Triaged

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1338591

Title:
  Cursor jumps on shape change with vmware vga

Status in QEMU:
  Triaged

Bug description:
  I launch QEMU with the following command line:

  qemu-system-i386 /home/ruslan/iso/Windoze/qemuxp.img -m 512 -display
  sdl -vga vmware -enable-kvm

  The guest OS is Windows XP. To reproduce the problem, do this:

  0. Make sure guest is WinXP (don't know if it's really necessary), use vmware 
VGA
  1. Set mouse cursor theme to default black&white theme, i.e. that without any 
translucency etc.
  2. Open a text editor, e.g. built-in notepad
  3. Move the cursor inside text entry widget
  4. See the cursor jumping away. You basically can't enter the cursor there.

  This also reproduces with MS Word 2003 even with oxy-white cursor
  theme (i.e. that with translucency) — seems Word uses its plain
  black&transparent cursor for I-beam cursor.

  This doesn't happen with other VGAs, i.e. cirrus and std.

  I used qemu git master to test this. qemu-system-i386 --version
  reports version 2.0.90, git describe says v2.1.0-rc0-1-g9d9de25. This
  also happened in earlier QEMU versions, like 1.5.x and older.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1338591/+subscriptions



[Qemu-devel] [Bug 902720] Re: TIME_MAX not set correctly for OpenBSD in qemu-common.h

2017-10-28 Thread Thomas Huth
** Changed in: qemu
   Status: Incomplete => Triaged

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/902720

Title:
  TIME_MAX not set correctly for OpenBSD in qemu-common.h

Status in QEMU:
  Triaged

Bug description:
  Looking at the OpenBSD buildbot logs I noticed a warning that appears to be a 
bug in the code.
  OpenBSD has a 32-bit time_t on all archs at the moment (32-bit and 64-bit).

CCi386-softmmu/monitor.o
  /buildbot-qemu/default_openbsd_current/build/monitor.c: In function 
'expire_password':
  /buildbot-qemu/default_openbsd_current/build/monitor.c:944: warning: overflow 
in implicit constant conversion

  qemu-common.h has...

  #ifndef TIME_MAX
  #define TIME_MAX LONG_MAX
  #endif

  for OpenBSD this should be INT_MAX.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/902720/+subscriptions



Re: [Qemu-devel] [PATCH v2] Discover openpty(3) dynamically in configure

2017-10-28 Thread Kamil Rytarowski

On 14.09.2017 15:52, Peter Maydell wrote:
> On 11 September 2017 at 18:16, Kamil Rytarowski  wrote:
>> openpty(3) might:
>>  - exists in libc (OSX)
>>  - exists in libutil (GNU, BSD)
>>  - does not exist (SmartOS)
>>
>> Add a function to discover this function in the ./configure script.
>> Add new config types: CONFIG_OPENPTY_LIBC and CONFIG_OPENPTY_LIBUTIL,
>> respectively defined when openpts(3) links with -lc or -lutil.
>>
>> Replace the condition adding -lutil in tests (for openpty(3)) from
>> CONFIG_POSIX to CONFIG_OPENPTY_LIBUTIL.
>>
>> Replace the fallback openpty(3) impelementation comment from Solaris
>> to SmartOS. Solaris is EOL'ed and it's confirmed that it does not work
>> on Oracle Solaris.
>> ---
>>  configure  | 25 +
>>  tests/Makefile.include |  2 +-
>>  util/qemu-openpty.c|  4 ++--
>>  3 files changed, 28 insertions(+), 3 deletions(-)
>>
>> diff --git a/configure b/configure
>> index fd7e3a5e81..a614adcd29 100755
>> --- a/configure
>> +++ b/configure
>> @@ -3819,6 +3819,25 @@ EOF
>>fi
>>  fi
>>
>> +##
>> +# openpty probe
>> +openpty_libc=no
>> +openpty_libutil=no
>> +cat > $TMPC << EOF
>> +extern int openpty(int *amaster, int *aslave, char *name, void *termp, void 
>> *winp);
> 
> I think the need to provide a prototype here rather than
> using the system header to define it is revealing that we
> also need a configure test for
>  * openpty() in 
>  * openpty() in 
>  * openpty() in 
> 
> Something like this untested code ought to do:
> 
> cat > $TMPC << EOF
> #if defined(CONFIG_OPENPTY_IN_PTY_H)
> #include 
> #elif defined(CONFIG_OPENPTY_IN_LIBUTIL_H)
> #include 
> #elif defined(CONFIG_OPENPTY_IN_UTIL_H)
> #include 
> #endif
> int main(void) { return openpty(0, 0, 0, 0, 0); }
> EOF
> 
> # Different platforms put openpty() in different headers,
> # and may or may not need us to link against -lutil
> if compile_prog -DCONFIG_OPENPTY_IN_PTY_H ""; then
>   openpty_in_pty_h=yes
> elif compile_prog -D_CONFIG_OPENPTY_IN_PTY_H -lutil; then
>   openpty_in_pty_h=yes
>   openpty_libutil=yes
> elif compile_object -DCONFIG_OPENPTY_IN_LIBUTIL_H; then
>   openpty_in_libutil_h=yes
> elif compile_prog -D_CONFIG_OPENPTY_IN_LIBUTIL_H -lutil; then
>   openpty_in_libutil_h=yes
>   openpty_libutil=yes
> elif compile_object -DCONFIG_OPENPTY_IN_UTIL_H; then
>   openpty_in_util_h=yes
> elif compile_prog -D_CONFIG_OPENPTY_IN_UTIL_H -lutil; then
>   openpty_in_util_h=yes
>   openpty_libutil=yes
> fi
> 
> Then in qemu-openpty.c we can do
> 
> #include 
> 
> #if defined(CONFIG_OPENPTY_IN_PTY_H)
> #include 
> #elif defined(CONFIG_OPENPTY_IN_LIBUTIL_H)
> #include 
> #elif defined(CONFIG_OPENPTY_IN_UTIL_H)
> #include 
> #else
> /* sunos fallback code */
> #endif
> 
> 
>> +if test "$openpty_libc" = "yes" ; then
>> +  echo "CONFIG_OPENPTY_LIBC=y" >> $config_host_mak
>> +fi
> 
> 
> If we use the CONFIG_OPENPTY_IN_*_H constants as above
> we don't need CONFIG_OPENPTY_LIBC any more.
> 
> thanks
> -- PMM
> 
Hello,

I've naively expected that once a build on a certain OS will be fixed,
it will be functional for longer period (at least few weeks). In one
month qemu has been broken on DragonFly and SmartOS so they are not just
broken in tests, but also in the basic build.

SmartOS has new compatibility problems with grep(1) invocations and tpm
emulator fatal build failure. Few old problems with conflicts with
system headers like conflicts with symbols CS and REG_SP.

There are certainly other small incompatibility problems, after the
breakage. Just a remind that SmartOS was not capable to execute tests
because of incompatible diff(1) invocations and unclear gmake(1)
misbehavior. And this was just the beginning of the problems.

DragonFlyBSD has problems with PAGE_SIZE, PAGE_MASK clash with headers
in s390x code. PAGE_MASK, PAGE_SHIFT and PAGE_SIZE in nand. No single
GTESTER invocation passes.

Because there is need to fix the SmartOS build in order to improve this
openpty(3) patch, I'm resigning from it. I also resign from helping
DragonFly port.

I will focus entirely on the bits that I registered as a maintainer.

I leave the decisions and steps about support of these platforms to
other volunteers and qemu core maintainers.

+ CC Antonio and Peter



signature.asc
Description: OpenPGP digital signature


Re: [Qemu-devel] kvm_intel fails to load on Conroe CPUs running Linux 4.12

2017-10-28 Thread Gerhard Wiesinger

On 10.10.2017 16:16, Paolo Bonzini wrote:

On 27/09/2017 21:31, Gerhard Wiesinger wrote:

On 15.09.2017 19:07, Paolo Bonzini wrote:

On 15/09/2017 16:43, Gerhard Wiesinger wrote:

On 27.08.2017 20:55, Paolo Bonzini wrote:

Il 27 ago 2017 4:48 PM, "Gerhard Wiesinger" mailto:li...@wiesinger.com>> ha scritto:

  On 27.08.2017 14 :03, Paolo Bonzini wrote:


  We will revert the patch, but 4.13.0 will not have the fix.
  Expect it in later stable kernels (because vacations).


  Thnx. Why will 4.13.0 NOT have the fix?


Because maintainers are on vacation! :-)



Hello Paolo,

Any update on this for 4.12 and 4.13 kernels?

A late fix is better than a wrong fix.  Hope to get to it next week!

Hello Paolo,

Any update? Thnx.

Hey, I have a patch now.  Any volunteers for testing it?

This is on top of 4.13.

Paolo

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index c6ef2940119b..c29bf36485fd 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -200,6 +200,10 @@ struct loaded_vmcs {
int cpu;
bool launched;
bool nmi_known_unmasked;
+   /* Support for vnmi-less CPUs */
+   int soft_vnmi_blocked;
+   ktime_t entry_time;
+   s64 vnmi_blocked_time;
struct list_head loaded_vmcss_on_cpu_link;
  };
  


Hello Paolo,

The patch does not apply, 1st hunk FAILED.
cat arch/x86/kvm/vmx.c.rej
--- arch/x86/kvm/vmx.c
+++ arch/x86/kvm/vmx.c
@@ -200,6 +200,10 @@ struct loaded_vmcs {
    int cpu;
    bool launched;
    bool nmi_known_unmasked;
+   /* Support for vnmi-less CPUs */
+   int soft_vnmi_blocked;
+   ktime_t entry_time;
+   s64 vnmi_blocked_time;
    struct list_head loaded_vmcss_on_cpu_link;
 };

Tried it to apply against, doesn't look to fit:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/arch/x86/kvm/vmx.c?h=v4.13.10#n197
https://koji.fedoraproject.org/koji/buildinfo?buildID=991441

Will then recompile and test.

Thnx.

Ciao,
Gerhard





[Qemu-devel] [PATCH] oslib-posix: Use sysctl(2) call to resolve exec_dir on NetBSD

2017-10-28 Thread Kamil Rytarowski
NetBSD 8.0(beta) ships with KERN_PROC_PATHNAME in sysctl(2).
Older NetBSD versions can use argv[0] parsing fallback.

This code section is partly shared with FreeBSD.

Signed-off-by: Kamil Rytarowski 
---
 util/oslib-posix.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 382bd4a231..77369c92ce 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -49,6 +49,10 @@
 #include 
 #endif
 
+#ifdef __NetBSD__
+#include 
+#endif
+
 #include "qemu/mmap-alloc.h"
 
 #ifdef CONFIG_DEBUG_STACK_USAGE
@@ -250,9 +254,14 @@ void qemu_init_exec_dir(const char *argv0)
 p = buf;
 }
 }
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) \
+  || (defined(__NetBSD__) && defined(KERN_PROC_PATHNAME))
 {
+#if defined(__FreeBSD__)
 static int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+#else
+static int mib[4] = {CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME};
+#endif
 size_t len = sizeof(buf) - 1;
 
 *buf = '\0';
-- 
2.14.3




Re: [Qemu-devel] [PATCH v2 1/4] build: allow setting a custom GIT binary for transparent proxying

2017-10-28 Thread Daniel P. Berrange
On Sat, Oct 28, 2017 at 12:53:50PM +1100, Alexey Kardashevskiy wrote:
> On 28/10/17 00:14, Daniel P. Berrange wrote:
> > Some users can't run a bare 'git' command, due to need for a transparent
> > proxying solution such as 'tsocks'. This adds an argument to configure to
> > let users specify such a thing:
> > 
> >   ./configure --with-git="tsocks git"
> > 
> > The submodule script is also updated to give the user a hint about using 
> > this
> > flag, if we fail to checkout modules.
> > 
> > Signed-off-by: Daniel P. Berrange 
> > ---
> >  Makefile |  4 ++--
> >  configure|  5 +
> >  scripts/git-submodule.sh | 30 +-
> >  3 files changed, 32 insertions(+), 7 deletions(-)
> > 
> > diff --git a/Makefile b/Makefile
> > index 9372742f86..4c9d0eaef2 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -21,14 +21,14 @@ git-submodule-update:
> >  ifeq (0,$(MAKELEVEL))
> >git_module_status := $(shell \
> >  cd '$(SRC_PATH)' && \
> > -./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
> > +GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
> >  echo $$?; \
> >)
> >  
> >  ifeq (1,$(git_module_status))
> >  git-submodule-update:
> > $(call quiet-command, \
> > -  (cd $(SRC_PATH) && ./scripts/git-submodule.sh update 
> > $(GIT_SUBMODULES)), \
> > +  (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh 
> > update $(GIT_SUBMODULES)), \
> >"GIT","$(GIT_SUBMODULES)")
> >  endif
> >  endif
> > diff --git a/configure b/configure
> > index 03547cea6a..65765968f3 100755
> > --- a/configure
> > +++ b/configure
> > @@ -271,6 +271,7 @@ then
> >  else
> >  git_submodules=""
> >  fi
> > +git="git"
> >  
> >  # Don't accept a target_list environment variable.
> >  unset target_list
> > @@ -1294,6 +1295,8 @@ for opt do
> >error_exit "vhost-user isn't available on win32"
> >fi
> >;;
> > +  --with-git=*) git="$optarg"
> > +  ;;
> >*)
> >echo "ERROR: unknown option $opt"
> >echo "Try '$0 --help' for more information"
> > @@ -5338,6 +5341,7 @@ echo "local state directory   queried at runtime"
> >  echo "Windows SDK   $win_sdk"
> >  fi
> >  echo "Source path   $source_path"
> > +echo "GIT binary$git"
> >  echo "GIT submodules$git_submodules"
> >  echo "C compiler$cc"
> >  echo "Host C compiler   $host_cc"
> > @@ -5528,6 +5532,7 @@ echo "extra_cxxflags=$EXTRA_CXXFLAGS" >> 
> > $config_host_mak
> >  echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
> >  echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
> >  echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
> > +echo "GIT=$git" >> $config_host_mak
> >  echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
> >  
> >  echo "ARCH=$ARCH" >> $config_host_mak
> > diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
> > index 08932a35f0..c66567d409 100755
> > --- a/scripts/git-submodule.sh
> > +++ b/scripts/git-submodule.sh
> > @@ -3,14 +3,19 @@
> >  # This code is licensed under the GPL version 2 or later.  See
> >  # the COPYING file in the top-level directory.
> >  
> > -set -e
> > -
> >  substat=".git-submodule-status"
> >  
> >  command=$1
> >  shift
> >  modules="$@"
> >  
> > +test -z "$GIT" && GIT=git
> > +
> > +error() {
> > +printf "$0: %s\n" "$*" >&2
> > +exit 1
> > +}
> > +
> >  if test -z "$modules"
> >  then
> >  test -e $substat || touch $substat
> > @@ -27,12 +32,27 @@ case "$command" in
> >  status)
> >  test -f "$substat" || exit 1
> >  trap "rm -f ${substat}.tmp" EXIT
> > -git submodule status $modules > "${substat}.tmp"
> > +$GIT submodule status $modules > "${substat}.tmp"
> > +test $? -ne 0 && error "failed to query git submodule status"
> >  diff "${substat}" "${substat}.tmp" >/dev/null
> >  exit $?
> >  ;;
> >  update)
> > -git submodule update --init $modules 1>/dev/null
> > -git submodule status $modules > "${substat}"
> > +$GIT submodule update --init $modules 1>/dev/null
> > +if test $? -ne 0 ; then
> > +echo
> > +echo "Unable to automatically checkout GIT submodules '$modules'."
> > +echo "If you require use of an alternative GIT binary (for example 
> > to"
> > +echo "enable use of a transparent proxy), then please specify it 
> > by"
> > +echo "running configure by with the '--with-git' argument. e.g."
> > +echo
> > +echo " $ ./configure --with-git='tsocks git'"
> > +echo
> > +exit 1
> > +fi
> > +$GIT submodule status $modules > "${substat}"
> > +test $? -ne 0 && error "failed to save git submodule status"
> 
> 
> The way I am testing it - I simply delete .git-submodule-status (I used to
> change it but deleting works as well) and then I get:
> 
> ./scripts/git-submodule.sh: 74: ./scripts/git-submodule.sh: cannot create
> .git-submodule-status: Read-only file system
> 
> be

[Qemu-devel] [PATCH] smbios: support setting OEM strings table

2017-10-28 Thread Daniel P. Berrange
The cloud-init program currently allows fetching of its data by repurposing of
the 'system' type 'serial' field. This is a clear abuse of the serial field that
would clash with other valid usage a virt management app might have for that
field.

Fortunately the SMBIOS defines an "OEM Strings" table whose puporse is to allow
exposing of arbitrary vendor specific strings to the operating system. This is
perfect for use with cloud-init, or as a way to pass arguments to OS installers
such as anaconda.

This patch makes it easier to support this with QEMU. e.g.

  $QEMU -smbios type=11,value=Hello,value=World,value=Tricky,,value=test

Which results in the guest seeing dmidecode data

  Handle 0x0E00, DMI type 11, 5 bytes
  OEM Strings
  String 1: Hello
  String 2: World
  String 3: Tricky,value=test

It is suggested that any app wanting to make use of this OEM strings capability
for accepting data from the host mgmt layer should use its name as a string
prefix. e.g. to expose OEM strings targetting both cloud init and anaconda in
parallel the mgmt app could set

  $QEMU -smbios 
type=11,value=cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/,\

value=anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os

which would appear as

  Handle 0x0E00, DMI type 11, 5 bytes
  OEM Strings
  String 1: cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/
  String 2: 
anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os

Use of such string prefixes means the app won't have to care which string slot
its data appears in.

Signed-off-by: Daniel P. Berrange 
---
 hw/smbios/smbios.c | 72 ++
 hw/smbios/smbios_build.h   | 12 
 include/hw/smbios/smbios.h |  6 
 3 files changed, 90 insertions(+)

diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 1a5437a07d..5d11f01874 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -96,6 +96,11 @@ static struct {
 } type4;
 
 static struct {
+size_t nvalues;
+const char **values;
+} type11;
+
+static struct {
 const char *loc_pfx, *bank, *manufacturer, *serial, *asset, *part;
 uint16_t speed;
 } type17;
@@ -282,6 +287,14 @@ static const QemuOptDesc qemu_smbios_type4_opts[] = {
 { /* end of list */ }
 };
 
+static const QemuOptDesc qemu_smbios_type11_opts[] = {
+{
+.name = "value",
+.type = QEMU_OPT_STRING,
+.help = "OEM string data",
+},
+};
+
 static const QemuOptDesc qemu_smbios_type17_opts[] = {
 {
 .name = "type",
@@ -590,6 +603,27 @@ static void smbios_build_type_4_table(unsigned instance)
 smbios_type4_count++;
 }
 
+static void smbios_build_type_11_table(void)
+{
+char count_str[128];
+size_t i;
+
+if (type11.nvalues == 0) {
+return;
+}
+
+SMBIOS_BUILD_TABLE_PRE(11, 0xe00, true); /* required */
+
+snprintf(count_str, sizeof(count_str), "%zu", type11.nvalues);
+t->count = type11.nvalues;
+
+for (i = 0; i < type11.nvalues; i++) {
+SMBIOS_TABLE_SET_STR_LIST(11, type11.values[i]);
+}
+
+SMBIOS_BUILD_TABLE_POST;
+}
+
 #define ONE_KB ((ram_addr_t)1 << 10)
 #define ONE_MB ((ram_addr_t)1 << 20)
 #define ONE_GB ((ram_addr_t)1 << 30)
@@ -832,6 +866,8 @@ void smbios_get_tables(const struct smbios_phys_mem_area 
*mem_array,
 smbios_build_type_4_table(i);
 }
 
+smbios_build_type_11_table();
+
 #define MAX_DIMM_SZ (16ll * ONE_GB)
 #define GET_DIMM_SZ ((i < dimm_cnt - 1) ? MAX_DIMM_SZ \
 : ((ram_size - 1) % MAX_DIMM_SZ) + 1)
@@ -882,6 +918,38 @@ static void save_opt(const char **dest, QemuOpts *opts, 
const char *name)
 }
 }
 
+
+struct opt_list {
+const char *name;
+size_t *ndest;
+const char ***dest;
+};
+
+static int save_opt_one(void *opaque,
+const char *name, const char *value,
+Error **errp)
+{
+struct opt_list *opt = opaque;
+
+if (!g_str_equal(name, opt->name)) {
+return 0;
+}
+
+*opt->dest = g_renew(const char *, *opt->dest, (*opt->ndest) + 1);
+(*opt->dest)[*opt->ndest] = value;
+(*opt->ndest)++;
+return 0;
+}
+
+static void save_opt_list(size_t *ndest, const char ***dest,
+  QemuOpts *opts, const char *name)
+{
+struct opt_list opt = {
+name, ndest, dest,
+};
+qemu_opt_foreach(opts, save_opt_one, &opt, NULL);
+}
+
 void smbios_entry_add(QemuOpts *opts, Error **errp)
 {
 const char *val;
@@ -1035,6 +1103,10 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
 save_opt(&type4.asset, opts, "asset");
 save_opt(&type4.part, opts, "part");
 return;
+case 11:
+qemu_opts_validate(opts, qemu_smbios_type11_opts, &error_fatal);
+save_opt_list(&type11.nvalues, &type11.values, opts, "value");
+return;
  

[Qemu-devel] [Bug 1728325] [NEW] POWER8: Wrong behaviour with float-to-int punning

2017-10-28 Thread Iain Buclaw
Public bug reported:

Building a reduced test program with 'gcc -O2 -fno-inline -mcpu=power8'
produces wrong results at runtime. I don't think gcc is at fault here.

---
#include 

int getWord(const float x)
{
  return *(int*)&x;
}

void main()
{
int foo = getWord(+123.456f);
int bar = getWord(-123.456f);

printf("%d\n", foo);
printf("%d\n", bar);
return;
}
---

This prints:
---
0
0
---

Compiling with 'gcc -O2 -fno-inline -mcpu=power7' and you instead get the 
expected result:
---
1123477881
-1024005767
---


The different between the two programs is:

--- power7.s
+++ power8.s
@@ -6,9 +6,9 @@
.globl getWord
.type   getWord, @function
 getWord:
-   stfs 1,-16(1)
-   ori 2,2,0
-   lwa 3,-16(1)
+   xscvdpspn 0,1
+   mfvsrwz 3,0
+   extsw 3,3
blr
.long 0
.byte 0,0,0,0,0,0,0,0
.size   getWord,.-getWord


Seems like qemu doesn't handle xscvdpspn/mfvsrwz correctly.

https://github.com/qemu/qemu/commit/7ee19fb9d682689d36c849576c808cf92e3bae40
https://github.com/qemu/qemu/commit/f5c0f7f981333da59cc35c3210d05ec1775c97c1

** Affects: qemu
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1728325

Title:
  POWER8: Wrong behaviour with float-to-int punning

Status in QEMU:
  New

Bug description:
  Building a reduced test program with 'gcc -O2 -fno-inline
  -mcpu=power8' produces wrong results at runtime. I don't think gcc is
  at fault here.

  ---
  #include 

  int getWord(const float x)
  {
return *(int*)&x;
  }

  void main()
  {
  int foo = getWord(+123.456f);
  int bar = getWord(-123.456f);

  printf("%d\n", foo);
  printf("%d\n", bar);
  return;
  }
  ---

  This prints:
  ---
  0
  0
  ---

  Compiling with 'gcc -O2 -fno-inline -mcpu=power7' and you instead get the 
expected result:
  ---
  1123477881
  -1024005767
  ---

  
  The different between the two programs is:

  --- power7.s
  +++ power8.s
  @@ -6,9 +6,9 @@
.globl getWord
.type   getWord, @function
   getWord:
  - stfs 1,-16(1)
  - ori 2,2,0
  - lwa 3,-16(1)
  + xscvdpspn 0,1
  + mfvsrwz 3,0
  + extsw 3,3
blr
.long 0
.byte 0,0,0,0,0,0,0,0
  .size   getWord,.-getWord

  
  Seems like qemu doesn't handle xscvdpspn/mfvsrwz correctly.

  https://github.com/qemu/qemu/commit/7ee19fb9d682689d36c849576c808cf92e3bae40
  https://github.com/qemu/qemu/commit/f5c0f7f981333da59cc35c3210d05ec1775c97c1

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1728325/+subscriptions



[Qemu-devel] [Bug 1728325] Re: POWER8: Wrong behaviour with float-to-int punning

2017-10-28 Thread Iain Buclaw
I am running:

qemu-ppc64le-static -L /usr/powerpc64le-linux-gnu ./a.out

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1728325

Title:
  POWER8: Wrong behaviour with float-to-int punning

Status in QEMU:
  New

Bug description:
  Building a reduced test program with 'gcc -O2 -fno-inline
  -mcpu=power8' produces wrong results at runtime. I don't think gcc is
  at fault here.

  ---
  #include 

  int getWord(const float x)
  {
return *(int*)&x;
  }

  void main()
  {
  int foo = getWord(+123.456f);
  int bar = getWord(-123.456f);

  printf("%d\n", foo);
  printf("%d\n", bar);
  return;
  }
  ---

  This prints:
  ---
  0
  0
  ---

  Compiling with 'gcc -O2 -fno-inline -mcpu=power7' and you instead get the 
expected result:
  ---
  1123477881
  -1024005767
  ---

  
  The different between the two programs is:

  --- power7.s
  +++ power8.s
  @@ -6,9 +6,9 @@
.globl getWord
.type   getWord, @function
   getWord:
  - stfs 1,-16(1)
  - ori 2,2,0
  - lwa 3,-16(1)
  + xscvdpspn 0,1
  + mfvsrwz 3,0
  + extsw 3,3
blr
.long 0
.byte 0,0,0,0,0,0,0,0
  .size   getWord,.-getWord

  
  Seems like qemu doesn't handle xscvdpspn/mfvsrwz correctly.

  https://github.com/qemu/qemu/commit/7ee19fb9d682689d36c849576c808cf92e3bae40
  https://github.com/qemu/qemu/commit/f5c0f7f981333da59cc35c3210d05ec1775c97c1

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1728325/+subscriptions



Re: [Qemu-devel] [PATCH v2 1/4] build: allow setting a custom GIT binary for transparent proxying

2017-10-28 Thread Alexey Kardashevskiy
On 29/10/17 07:45, Daniel P. Berrange wrote:
> On Sat, Oct 28, 2017 at 12:53:50PM +1100, Alexey Kardashevskiy wrote:
>> On 28/10/17 00:14, Daniel P. Berrange wrote:
>>> Some users can't run a bare 'git' command, due to need for a transparent
>>> proxying solution such as 'tsocks'. This adds an argument to configure to
>>> let users specify such a thing:
>>>
>>>   ./configure --with-git="tsocks git"
>>>
>>> The submodule script is also updated to give the user a hint about using 
>>> this
>>> flag, if we fail to checkout modules.
>>>
>>> Signed-off-by: Daniel P. Berrange 
>>> ---
>>>  Makefile |  4 ++--
>>>  configure|  5 +
>>>  scripts/git-submodule.sh | 30 +-
>>>  3 files changed, 32 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 9372742f86..4c9d0eaef2 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -21,14 +21,14 @@ git-submodule-update:
>>>  ifeq (0,$(MAKELEVEL))
>>>git_module_status := $(shell \
>>>  cd '$(SRC_PATH)' && \
>>> -./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
>>> +GIT="$(GIT)" ./scripts/git-submodule.sh status $(GIT_SUBMODULES); \
>>>  echo $$?; \
>>>)
>>>  
>>>  ifeq (1,$(git_module_status))
>>>  git-submodule-update:
>>> $(call quiet-command, \
>>> -  (cd $(SRC_PATH) && ./scripts/git-submodule.sh update 
>>> $(GIT_SUBMODULES)), \
>>> +  (cd $(SRC_PATH) && GIT="$(GIT)" ./scripts/git-submodule.sh 
>>> update $(GIT_SUBMODULES)), \
>>>"GIT","$(GIT_SUBMODULES)")
>>>  endif
>>>  endif
>>> diff --git a/configure b/configure
>>> index 03547cea6a..65765968f3 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -271,6 +271,7 @@ then
>>>  else
>>>  git_submodules=""
>>>  fi
>>> +git="git"
>>>  
>>>  # Don't accept a target_list environment variable.
>>>  unset target_list
>>> @@ -1294,6 +1295,8 @@ for opt do
>>>error_exit "vhost-user isn't available on win32"
>>>fi
>>>;;
>>> +  --with-git=*) git="$optarg"
>>> +  ;;
>>>*)
>>>echo "ERROR: unknown option $opt"
>>>echo "Try '$0 --help' for more information"
>>> @@ -5338,6 +5341,7 @@ echo "local state directory   queried at runtime"
>>>  echo "Windows SDK   $win_sdk"
>>>  fi
>>>  echo "Source path   $source_path"
>>> +echo "GIT binary$git"
>>>  echo "GIT submodules$git_submodules"
>>>  echo "C compiler$cc"
>>>  echo "Host C compiler   $host_cc"
>>> @@ -5528,6 +5532,7 @@ echo "extra_cxxflags=$EXTRA_CXXFLAGS" >> 
>>> $config_host_mak
>>>  echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
>>>  echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
>>>  echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
>>> +echo "GIT=$git" >> $config_host_mak
>>>  echo "GIT_SUBMODULES=$git_submodules" >> $config_host_mak
>>>  
>>>  echo "ARCH=$ARCH" >> $config_host_mak
>>> diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
>>> index 08932a35f0..c66567d409 100755
>>> --- a/scripts/git-submodule.sh
>>> +++ b/scripts/git-submodule.sh
>>> @@ -3,14 +3,19 @@
>>>  # This code is licensed under the GPL version 2 or later.  See
>>>  # the COPYING file in the top-level directory.
>>>  
>>> -set -e
>>> -
>>>  substat=".git-submodule-status"
>>>  
>>>  command=$1
>>>  shift
>>>  modules="$@"
>>>  
>>> +test -z "$GIT" && GIT=git
>>> +
>>> +error() {
>>> +printf "$0: %s\n" "$*" >&2
>>> +exit 1
>>> +}
>>> +
>>>  if test -z "$modules"
>>>  then
>>>  test -e $substat || touch $substat
>>> @@ -27,12 +32,27 @@ case "$command" in
>>>  status)
>>>  test -f "$substat" || exit 1
>>>  trap "rm -f ${substat}.tmp" EXIT
>>> -git submodule status $modules > "${substat}.tmp"
>>> +$GIT submodule status $modules > "${substat}.tmp"
>>> +test $? -ne 0 && error "failed to query git submodule status"
>>>  diff "${substat}" "${substat}.tmp" >/dev/null
>>>  exit $?
>>>  ;;
>>>  update)
>>> -git submodule update --init $modules 1>/dev/null
>>> -git submodule status $modules > "${substat}"
>>> +$GIT submodule update --init $modules 1>/dev/null
>>> +if test $? -ne 0 ; then
>>> +echo
>>> +echo "Unable to automatically checkout GIT submodules '$modules'."
>>> +echo "If you require use of an alternative GIT binary (for example 
>>> to"
>>> +echo "enable use of a transparent proxy), then please specify it 
>>> by"
>>> +echo "running configure by with the '--with-git' argument. e.g."
>>> +echo
>>> +echo " $ ./configure --with-git='tsocks git'"
>>> +echo
>>> +exit 1
>>> +fi
>>> +$GIT submodule status $modules > "${substat}"
>>> +test $? -ne 0 && error "failed to save git submodule status"
>>
>>
>> The way I am testing it - I simply delete .git-submodule-status (I used to
>> change it but deleting works as well) and then I get:
>>
>> ./scripts/git-submodule.sh: 74: ./scripts/git-submodule.sh: cannot create
>> .git

Re: [Qemu-devel] [PATCH v4] s390-ccw: print carriage return with new lines

2017-10-28 Thread Alexander Graf


On 27.10.17 18:14, Collin L. Walling wrote:
> The sclp console in the s390 bios writes raw data,
> leading console emulators (such as virsh console) to
> treat a new line ('\n') as just a new line instead
> of as a Unix line feed. Because of this, output
> appears in a "stair case" pattern.
> 
> Let's print \r\n on every occurrence of a new line
> in the string passed to write to amend this issue.
> 
> This is in sync with the guest Linux code in
> drivers/s390/char/sclp_vt220.c which also does a line feed
> conversion in the console part of the driver. 
> 
> This fixes the s390-ccw and s390-netboot output like
> $ virsh start test --console
> Domain test started
> Connected to domain test
> Escape character is ^]
> Network boot starting...
>   Using MAC address: 02:01:02:03:04:05
> Requesting 
> information via DHCP:  010
> 
> Signed-off-by: Collin L. Walling 
> ---
>  pc-bios/s390-ccw/sclp.c | 24 +---
>  1 file changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/pc-bios/s390-ccw/sclp.c b/pc-bios/s390-ccw/sclp.c
> index 486fce1..e6a0898 100644
> --- a/pc-bios/s390-ccw/sclp.c
> +++ b/pc-bios/s390-ccw/sclp.c
> @@ -68,17 +68,35 @@ void sclp_setup(void)
>  long write(int fd, const void *str, size_t len)
>  {
>  WriteEventData *sccb = (void *)_sccb;
> +const char *p = str;
> +size_t data_len = 0;
> +size_t i;
>  
>  if (fd != 1 && fd != 2) {
>  return -EIO;
>  }
>  
> -sccb->h.length = sizeof(WriteEventData) + len;
> +for (i = 0; i < len; i++) {
> +if ((data_len + 1) >= SCCB_DATA_LEN) {
> +/* We would overflow the sccb buffer, abort early */
> +len = i;
> +break;
> +}
> +
> +if (*p == '\n') {
> +/* Terminal emulators might need \r\n, so generate it */
> +sccb->data[data_len++] = '\r';
> +}
> +
> +sccb->data[data_len++] = *p;
> +p++;

I would probably replace this with str[i] to make it slightly more
readable, but that's just personal preference I think. The resulting
assembly should be identical with any recent compiler.


Reviewed-by: Alexander Graf 

Alex



[Qemu-devel] [Qemu devel PATCH] msf2: Wire up SYSRESETREQ in SoC for system reset

2017-10-28 Thread Subbaraya Sundeep
Implemented system reset by creating SYSRESETREQ gpio
out from nvic.

Signed-off-by: Subbaraya Sundeep 
---
 hw/arm/msf2-soc.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c
index 6f97fa9..a8ec2cd 100644
--- a/hw/arm/msf2-soc.c
+++ b/hw/arm/msf2-soc.c
@@ -57,6 +57,13 @@ static const int spi_irq[MSF2_NUM_SPIS] = { 2, 3 };
 static const int uart_irq[MSF2_NUM_UARTS] = { 10, 11 };
 static const int timer_irq[MSF2_NUM_TIMERS] = { 14, 15 };
 
+static void do_sys_reset(void *opaque, int n, int level)
+{
+if (level) {
+qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
+}
+}
+
 static void m2sxxx_soc_initfn(Object *obj)
 {
 MSF2State *s = MSF2_SOC(obj);
@@ -125,6 +132,10 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Error 
**errp)
 error_append_hint(errp, "m3clk can not be zero\n");
 return;
 }
+
+qdev_connect_gpio_out_named(DEVICE(&s->armv7m.nvic), "SYSRESETREQ", 0,
+qemu_allocate_irq(&do_sys_reset, NULL, 0));
+
 system_clock_scale = NANOSECONDS_PER_SECOND / s->m3clk;
 
 for (i = 0; i < MSF2_NUM_UARTS; i++) {
-- 
2.5.0