Re: [Qemu-devel] [PATCH 0/4] qemu-file: Move QEMUFileOps implementations to separate files

2014-10-01 Thread Markus Armbruster
Eduardo Habkost writes: > With this, code that uses symbols from qemu-file.c don't need to bring extra > dependencies because of the actual QEMUFile operation implementations. Each case of omitting the "extra dependencies" should be visible in makefiles as "prerequisites include qemu-file.o, but

Re: [Qemu-devel] [PATCH v3 0/6] Q35: Implement -cdrom/-hda sugar

2014-10-01 Thread Markus Armbruster
John Snow writes: > The Q35 board initialization does not currently bother to look > for any drives added by the various syntactical sugar shorthands > to be added to the AHCI HBA. These include -hda through -hdd, > -cdrom, and -drive if=ide shorthands. > > An obstacle to having implemented this

Re: [Qemu-devel] [PATCH] qemu-file: Add copyright header to qemu-file.c

2014-10-01 Thread Markus Armbruster
"Dr. David Alan Gilbert" writes: > * Eduardo Habkost (ehabk...@redhat.com) wrote: >> The person who created qemu-file.c (me, on commit >> 093c455a8c6d8f715eabd8c8d346f08f17d686ec) didn't add a copyright/license >> header to the file, even though the whole code was copied from savevm.c >> (which h

Re: [Qemu-devel] [PATCH] qemu-file: Add copyright header to qemu-file.c

2014-10-01 Thread Alexey Kardashevskiy
On 10/02/2014 03:47 AM, Eduardo Habkost wrote: > The person who created qemu-file.c (me, on commit > 093c455a8c6d8f715eabd8c8d346f08f17d686ec) didn't add a copyright/license > header to the file, even though the whole code was copied from savevm.c > (which had a copyright/license header). > > To c

[Qemu-devel] [Bug 1376533] [NEW] Copyright year should be updated in vl.c

2014-10-01 Thread Bruce Cran
Public bug reported: When specifying '--version', qemu prints the version along with 'Copyright (c) 2003-2008'. Some users may think that it hasn't been updated since 2008, so the end year in version() in vl.c should probably be updated around the start of each new year. Found in the qemu-2.1.2

[Qemu-devel] [PATCH 4/6] ahci: unify sglist preparation

2014-10-01 Thread John Snow
The intent of this patch is to further unify the creation and deletion of the sglist used for all AHCI transfers, including emulated PIO, ATAPI R/W, and native DMA R/W. By replacing ahci_start_transfer's call to ahci_populate_sglist with ahci_dma_prepare_buf, we reduce the number of direct calls w

[Qemu-devel] [PATCH 5/6] ide: Correct handling of malformed/short PRDTs

2014-10-01 Thread John Snow
This impacts both BMDMA and AHCI HBA interfaces for IDE. Currently, we confuse the difference between a PRD having "0 bytes" and a PRD having "0 complete sectors." This leads to, in the BMDMA case, leaked memory for short PRDTs, and infinite loops in the AHCI case. the "prepare_buf" callback is r

[Qemu-devel] [PATCH 1/6] ahci: Correct PIO/D2H FIS responses

2014-10-01 Thread John Snow
Currently, the D2H FIS packets AHCI generates simply parrot back the LBA that the guest sent to us in the cmd_fis. However, some commands (like READ NATIVE MAX) modify the LBA registers as a return value, through which the AHCI D2H FIS is the only response mechanism. Thus, the D2H response should u

[Qemu-devel] [PATCH 6/6] ahci: Fix SDB FIS Construction

2014-10-01 Thread John Snow
The SDB FIS creation was mangled; We were writing the error byte to byte 0, and omitting the SDB FIS magic byte. Though the SDB packet layout states that: byte 0: Must be 0xA1 to indicate SDB FIS. byte 1: Port multiplier select & other flags byte 2: status byte. byte 3: error byte. This patch add

[Qemu-devel] [PATCH 2/6] ahci: Update byte count after DMA completion

2014-10-01 Thread John Snow
Currently, DMA read/write operations neglect to update the byte count after a successful transfer like ATAPI DMA read or PIO read/write operations do. We correct this oversight by adding another callback into the IDEDMAOps structure. The commit callback is called whenever we are cleaning up a scat

[Qemu-devel] [PATCH 3/6] ide: repair PIO transfers for cases where nsector > 1

2014-10-01 Thread John Snow
Currently, for emulated PIO transfers through the AHCI device, any attempt made to request more than a single sector's worth of data will result in the same sector being transferred over and over. For example, if we request 8 sectors via PIO READ SECTORS, the AHCI device will give us the same sect

[Qemu-devel] [PATCH 0/6] AHCI Device Fixes

2014-10-01 Thread John Snow
Based off of feedback from the RFC of the same name, this series batches together a group of fixes that improve the AHCI device to fix a number of bugs. A number of fixes included in the RFC that provide more radical changes are omitted for now in favor of a smaller, more easily reviewable set for

[Qemu-devel] [PATCH 3/6] qemu-char: Move some items into TCPCharDriver

2014-10-01 Thread minyard
From: Corey Minyard This keeps them from having to be passed around and makes them available for later functions, like printing and reconnecting. Signed-off-by: Corey Minyard Reviewed-by: Paolo Bonzini --- qemu-char.c | 65 - 1 file

[Qemu-devel] [PATCH 5/6] qemu-char: Add reconnecting to client sockets

2014-10-01 Thread minyard
From: Corey Minyard Adds a "reconnect" option to socket backends that gives a reconnect timeout. This only applies to client sockets. If the other end of a socket closes the connection, qemu will attempt to reconnect after the given number of seconds. Signed-off-by: Corey Minyard --- qapi-sc

[Qemu-devel] [PATCH v4 0/6] Add reconnect capability to sockets

2014-10-01 Thread minyard
This fixes some tab damage from the previous set. That's it. -corey

[Qemu-devel] [PATCH 2/6] qemu-char: Rework qemu_chr_open_socket() for reconnect

2014-10-01 Thread minyard
From: Corey Minyard Move all socket configuration to qmp_chardev_open_socket(). qemu_chr_open_socket_fd() just opens the socket. This is getting ready for the reconnect code, which will call open_sock_fd() on a reconnect attempt. Signed-off-by: Corey Minyard Reviewed-by: Paolo Bonzini --- qe

[Qemu-devel] [PATCH 6/6] qemu-char: Print the remote and local addresses for a socket

2014-10-01 Thread minyard
From: Corey Minyard It seems that it might be a good idea to know what is at the remote end of a socket for tracking down issues. So add that to the socket filename. Signed-off-by: Corey Minyard Reviewed-by: Paolo Bonzini --- qemu-char.c | 27 ++- 1 file changed, 18 i

[Qemu-devel] [PATCH 4/6] qemu-char: set socket filename to disconnected when not connected

2014-10-01 Thread minyard
From: Corey Minyard This way we can tell if the socket is connected or not. It also splits the string conversions out into separate functions to make this more convenient. Signed-off-by: Corey Minyard Reviewed-by: Paolo Bonzini --- qemu-char.c | 102 --

[Qemu-devel] [PATCH 1/6] qemu-char: Make the filename size for a chardev a #define

2014-10-01 Thread minyard
From: Corey Minyard Signed-off-by: Corey Minyard Reviewed-by: Paolo Bonzini --- qemu-char.c | 16 +--- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index 8623c70..f9d2a02 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -84,6 +84,7 @@ #def

Re: [Qemu-devel] [PATCH 5/6] qemu-char: Add reconnecting to client sockets

2014-10-01 Thread Corey Minyard
On 10/01/2014 02:10 PM, Eric Blake wrote: > On 09/25/2014 02:07 PM, miny...@acm.org wrote: >> From: Corey Minyard >> >> Adds a "reconnect" option to socket backends that gives a reconnect >> timeout. This only applies to client sockets. If the other end >> of a socket closes the connection, qemu

Re: [Qemu-devel] Request for help

2014-10-01 Thread Martin Townsend
Hi Christopher, Thanks for the reply, I will take a look at the Versatile Express code. - Martin. On 01/10/14 17:41, Christopher Covington wrote: Hi Martin, On 10/01/2014 09:50 AM, Martin Townsend wrote: Hi, I'm looking into creating a virtualised test bed for an 802.15.4 network. Currentl

[Qemu-devel] [PATCH 3/4] qemu-file: Move unix and socket implementations to qemu-file-unix.c

2014-10-01 Thread Eduardo Habkost
Separate the QEMUFile interface from the implementation, to reduce dependencies from code using QEMUFile. All the code that is being moved to the new file is exactly the same code that was on savevm.c (moved by commit 093c455a8c6d8f715eabd8c8d346f08f17d686ec), so I am using the copyright and licen

[Qemu-devel] [PATCH 1/4] qemu-file: Make qemu_file_is_writable() non-static

2014-10-01 Thread Eduardo Habkost
The QEMUFileStdio code will use qemu_file_is_writable() and will be moved to a separate file. Signed-off-by: Eduardo Habkost --- include/migration/qemu-file.h | 1 + qemu-file.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/migration/qemu-file.h

[Qemu-devel] [PATCH 0/4] qemu-file: Move QEMUFileOps implementations to separate files

2014-10-01 Thread Eduardo Habkost
With this, code that uses symbols from qemu-file.c don't need to bring extra dependencies because of the actual QEMUFile operation implementations. Eduardo Habkost (4): qemu-file: Make qemu_file_is_writable() non-static qemu-file: Use qemu_file_is_writable() on stdio_fclose() qemu-file: Move

[Qemu-devel] [PATCH 4/4] qemu-file: Move stdio implementation to qemu-file-stdio.c

2014-10-01 Thread Eduardo Habkost
Separate the QEMUFile interface from the stdio-specific implementation, to reduce dependencies from code using QEMUFile. The code that is being moved is similar to the one that was on savevm.c before it was moved in commit 093c455a8c6d8f715eabd8c8d346f08f17d686ec, except for some changes done by M

[Qemu-devel] [PATCH 2/4] qemu-file: Use qemu_file_is_writable() on stdio_fclose()

2014-10-01 Thread Eduardo Habkost
Use the existing function which checks if writev_buffer() or put_buffer() are set, instead of duplicating it. Signed-off-by: Eduardo Habkost --- qemu-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu-file.c b/qemu-file.c index 6c8a6c9..482bda6 100644 --- a/qemu-file

Re: [Qemu-devel] NBD TLS support in QEMU

2014-10-01 Thread Wouter Verhelst
Hi, On Fri, Sep 05, 2014 at 03:26:09PM +0200, Wouter Verhelst wrote: > Tunneling the entire protocol inside an SSL connection doesn't fix that; > if an attacker is able to hijack your TCP connections and change flags, > then this attacker is also able to hijack your TCP connection and > redirect i

Re: [Qemu-devel] [PATCH 5/6] qemu-char: Add reconnecting to client sockets

2014-10-01 Thread Eric Blake
On 09/25/2014 02:07 PM, miny...@acm.org wrote: > From: Corey Minyard > > Adds a "reconnect" option to socket backends that gives a reconnect > timeout. This only applies to client sockets. If the other end > of a socket closes the connection, qemu will attempt to reconnect > after the given num

Re: [Qemu-devel] [PATCH 07/11] block: let backup blockjob run in BDS AioContext

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: The backup block job must run in the BlockDriverState AioContext so that it works with dataplane. The basics of acquiring the AioContext are easy in blockdev.c. The completion code in block/backup.c must call bdrv_unref() from the main loop. Use bloc

Re: [Qemu-devel] [PATCH 06/11] block: add bdrv_drain()

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: Now that op blockers are in use, we can ensure that no other sources are generating I/O on a BlockDriverState. Therefore it is possible to drain requests for a single BDS. Signed-off-by: Stefan Hajnoczi --- block.c | 36 ++

Re: [Qemu-devel] [PATCH 05/11] blockjob: add block_job_defer_to_main_loop()

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: Block jobs will run in the BlockDriverState's AioContext, which may not always be the QEMU main loop. There are some block layer APIs that are either not thread-safe or risk lock ordering problems. This includes bdrv_unref(), bdrv_close(), and anythin

Re: [Qemu-devel] [PATCH 04/11] blockdev: add note that block_job_cb() must be thread-safe

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: This function is correct but we should document the constraint that everything must be thread-safe. Emitting QMP events and scheduling BHs are both thread-safe so nothing needs to be done here. Signed-off-by: Stefan Hajnoczi --- blockdev.c | 5

Re: [Qemu-devel] [PATCH 03/11] blockdev: acquire AioContext in blockdev_mark_auto_del()

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: When an emulated storage controller is unrealized it will call blockdev_mark_auto_del(). This will cancel any running block job (and that eventually releases its reference to the BDS so it can be freed). Since the block job may be executing in another

Re: [Qemu-devel] [PATCH 02/11] blockdev: acquire AioContext in do_qmp_query_block_jobs_one()

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: Make sure that query-block-jobs acquires the BlockDriverState AioContext so that the blockjob isn't running in another thread while we access its state. Signed-off-by: Stefan Hajnoczi --- blockdev.c | 9 +++-- 1 file changed, 7 insertions(+), 2

Re: [Qemu-devel] [PATCH 01/11] block: acquire AioContext in generic blockjob QMP commands

2014-10-01 Thread Max Reitz
On 01.10.2014 19:01, Stefan Hajnoczi wrote: block-job-set-speed, block-job-cancel, block-job-pause, block-job-resume, and block-job-complete must acquire the BlockDriverState AioContext so that it is safe to access bs. At the moment bs->job is always NULL when dataplane is active because op bloc

[Qemu-devel] [PATCH v3 1/6] blockdev: Orphaned drive search

2014-10-01 Thread John Snow
When users use command line options like -hda, -cdrom, or even -drive if=ide, it is up to the board initialization routines to pick up these drives and create backing devices for them. Some boards, like Q35, have not been doing this. However, there is no warning explaining why certain drive specif

[Qemu-devel] [PATCH v3 5/6] qtest/bios-tables: Correct Q35 command line

2014-10-01 Thread John Snow
If the Q35 board types are to begin recognizing and decoding syntactic sugar for drive/device declarations, then workarounds found within the qtests suite need to be adjusted to prevent any test failures after the fix. bios-tables-test improperly uses this cli: -drive file=etc,id=hd -device ide-hd

[Qemu-devel] [PATCH v3 2/6] blockdev: Allow overriding if_max_dev property

2014-10-01 Thread John Snow
The if_max_devs table as in the past been an immutable default that controls the mapping of index => (bus,unit) for all boards and all HBAs for each interface type. Since adding this mapping information to the HBA device itself is currently unwieldly from the perspective of retrieving this informa

[Qemu-devel] [PATCH v3 3/6] pc/vl: Add units-per-default-bus property

2014-10-01 Thread John Snow
This patch adds the 'units_per_default_bus' property which allows individual boards to declare their desired index => (bus,unit) mapping for their default HBA, so that boards such as Q35 can specify that its default if_ide HBA, AHCI, only accepts one unit per bus. This property only overrides the

[Qemu-devel] [PATCH v3 4/6] ide: Update ide_drive_get to be HBA agnostic

2014-10-01 Thread John Snow
Instead of duplicating the logic for the if_ide (bus,unit) mappings, rely on the blockdev layer for managing those mappings for us, and use the drive_get_by_index call instead. This allows ide_drive_get to work for AHCI HBAs as well, and can be used in the Q35 initialization. Lastly, change the n

[Qemu-devel] [PATCH v3 6/6] q35/ahci: Pick up -cdrom and -hda options

2014-10-01 Thread John Snow
This patch implements the backend for the Q35 board for us to be able to pick up and use drives defined by the -cdrom, -hda, or -drive if=ide shorthand options. Signed-off-by: John Snow --- hw/i386/pc_q35.c | 4 hw/ide/ahci.c| 15 +++ hw/ide/ahci.h| 2 ++ 3 files chang

[Qemu-devel] [PATCH v3 0/6] Q35: Implement -cdrom/-hda sugar

2014-10-01 Thread John Snow
The Q35 board initialization does not currently bother to look for any drives added by the various syntactical sugar shorthands to be added to the AHCI HBA. These include -hda through -hdd, -cdrom, and -drive if=ide shorthands. An obstacle to having implemented this sooner is debate over whether o

Re: [Qemu-devel] [PATCH v2 4/7] tests: Add unit test for X86CPU code

2014-10-01 Thread Paolo Bonzini
Il 01/10/2014 18:28, Eduardo Habkost ha scritto: >> > tests/x86-stub.c perhaps can be moved to target-i386/test-stubs.c? > I was trying to keep all test code inside tests/. But perhaps all the > target-specific test code (including test-x86-cpu.c) could be moved to > target directories, and we coul

Re: [Qemu-devel] [PATCH 5/6] qemu-char: Add reconnecting to client sockets

2014-10-01 Thread Paolo Bonzini
Il 01/10/2014 14:38, Corey Minyard ha scritto: > I haven't heard anything about these patches. Is there anything I need > to do to get them included? Nothing, I just missed them in the huge traffic of qemu-devel. Will look at them tomorrow. Thanks for pinging them. Paolo

Re: [Qemu-devel] [PATCH] qemu-file: Add copyright header to qemu-file.c

2014-10-01 Thread Dr. David Alan Gilbert
* Eduardo Habkost (ehabk...@redhat.com) wrote: > The person who created qemu-file.c (me, on commit > 093c455a8c6d8f715eabd8c8d346f08f17d686ec) didn't add a copyright/license > header to the file, even though the whole code was copied from savevm.c > (which had a copyright/license header). > > To c

Re: [Qemu-devel] [PATCH v2] qga: Rewrite code where using readdir_r

2014-10-01 Thread Michael Roth
Quoting zhanghailiang (2014-09-18 22:09:10) > If readdir_r fails, error_setg_errno will reference the freed > pointer *dirpath*. > > Moreover, readdir_r may cause a buffer overflow, using readdir instead. > > Signed-off-by: zhanghailiang Thanks, applied to qga tree: https://github.com/mdroth/q

[Qemu-devel] [PATCH] qemu-file: Add copyright header to qemu-file.c

2014-10-01 Thread Eduardo Habkost
The person who created qemu-file.c (me, on commit 093c455a8c6d8f715eabd8c8d346f08f17d686ec) didn't add a copyright/license header to the file, even though the whole code was copied from savevm.c (which had a copyright/license header). To correct this, copy the copyright information and license fro

Re: [Qemu-devel] [PATCH v2] qemu-ga: added windows support for 'guest-network-get-interfaces'

2014-10-01 Thread Michael Roth
Quoting Kenth Andersson (2014-09-29 13:22:54) > Implementation of guest-network-get-interfaces for windows > > > Signed-off-by: Kenth Andersson Thanks! I've been testing the functionality and it seems work nicely. Some review comments below though: > --- > configure| 2 +- > qga

Re: [Qemu-devel] [RFC patch 0/6] vfio based pci pass-through for qemu/KVM on s390

2014-10-01 Thread Alex Williamson
On Wed, 2014-10-01 at 11:11 +0200, Frank Blaschka wrote: > On Fri, Sep 26, 2014 at 01:59:40PM -0600, Alex Williamson wrote: > > On Fri, 2014-09-26 at 08:45 +0200, Frank Blaschka wrote: > > > On Wed, Sep 24, 2014 at 10:05:57AM -0600, Alex Williamson wrote: > > > > On Wed, 2014-09-24 at 10:47 +0200,

Re: [Qemu-devel] [PATCH v4 23/23] block: Make device model's references to BlockBackend strong

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: Doesn't make a difference just yet, but it's the right thing to do. Signed-off-by: Markus Armbruster Reviewed-by: Benoît Canet Reviewed-by: Kevin Wolf --- block/block-backend.c | 2 ++ 1 file changed, 2 insertions(+) Reviewed-by: Max Reitz

Re: [Qemu-devel] [PATCH v4 19/23] blockdev: Fix blockdev-add not to create DriveInfo

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: blockdev_init() always creates a DriveInfo, but only drive_new() fills it in. qmp_blockdev_add() leaves it blank. This results in a drive with type = IF_IDE, bus = 0, unit = 0. Screwed up in commit ee13ed1c. Board initialization code looking for I

Re: [Qemu-devel] [PATCH v4 15/23] hw: Convert from BlockDriverState to BlockBackend, mostly

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: Device models should access their block backends only through the block-backend.h API. Convert them, and drop direct includes of inappropriate headers. Just four uses of BlockDriverState are left: * The Xen paravirtual block device backend (xen_dis

[Qemu-devel] [PATCH 10/11] block: let commit blockjob run in BDS AioContext

2014-10-01 Thread Stefan Hajnoczi
The commit block job must run in the BlockDriverState AioContext so that it works with dataplane. Acquire the AioContext in blockdev.c so starting the block job is safe. One detail here is that the bdrv_drain_all() must be moved inside the aio_context_acquire() region so requests cannot sneak in b

[Qemu-devel] [PATCH 11/11] block: declare blockjobs and dataplane friends!

2014-10-01 Thread Stefan Hajnoczi
Now that blockjobs use AioContext they are safe for use with dataplane. Unblock them! Signed-off-by: Stefan Hajnoczi --- blockjob.c | 1 + hw/block/dataplane/virtio-blk.c | 5 + 2 files changed, 6 insertions(+) diff --git a/blockjob.c b/blockjob.c index 24a64d8..d0b753f

[Qemu-devel] [PATCH 09/11] block: let mirror blockjob run in BDS AioContext

2014-10-01 Thread Stefan Hajnoczi
The mirror block job must run in the BlockDriverState AioContext so that it works with dataplane. Acquire the AioContext in blockdev.c so starting the block job is safe. Note that to_replace is treated separately from other BlockDriverStates in that it does not need to be in the same AioContext.

[Qemu-devel] [PATCH 07/11] block: let backup blockjob run in BDS AioContext

2014-10-01 Thread Stefan Hajnoczi
The backup block job must run in the BlockDriverState AioContext so that it works with dataplane. The basics of acquiring the AioContext are easy in blockdev.c. The completion code in block/backup.c must call bdrv_unref() from the main loop. Use block_job_defer_to_main_loop() to achieve that. S

[Qemu-devel] [PATCH 06/11] block: add bdrv_drain()

2014-10-01 Thread Stefan Hajnoczi
Now that op blockers are in use, we can ensure that no other sources are generating I/O on a BlockDriverState. Therefore it is possible to drain requests for a single BDS. Signed-off-by: Stefan Hajnoczi --- block.c | 36 +--- include/block/block.h |

[Qemu-devel] [PATCH 03/11] blockdev: acquire AioContext in blockdev_mark_auto_del()

2014-10-01 Thread Stefan Hajnoczi
When an emulated storage controller is unrealized it will call blockdev_mark_auto_del(). This will cancel any running block job (and that eventually releases its reference to the BDS so it can be freed). Since the block job may be executing in another AioContext we must acquire/release to ensure

[Qemu-devel] [PATCH 04/11] blockdev: add note that block_job_cb() must be thread-safe

2014-10-01 Thread Stefan Hajnoczi
This function is correct but we should document the constraint that everything must be thread-safe. Emitting QMP events and scheduling BHs are both thread-safe so nothing needs to be done here. Signed-off-by: Stefan Hajnoczi --- blockdev.c | 5 + 1 file changed, 5 insertions(+) diff --git

[Qemu-devel] [PATCH 08/11] block: let stream blockjob run in BDS AioContext

2014-10-01 Thread Stefan Hajnoczi
The stream block job must run in the BlockDriverState AioContext so that it works with dataplane. The basics of acquiring the AioContext are easy in blockdev.c. The tricky part is the completion code which drops part of the backing file chain. This must be done in the main loop where bdrv_unref(

[Qemu-devel] [PATCH 01/11] block: acquire AioContext in generic blockjob QMP commands

2014-10-01 Thread Stefan Hajnoczi
block-job-set-speed, block-job-cancel, block-job-pause, block-job-resume, and block-job-complete must acquire the BlockDriverState AioContext so that it is safe to access bs. At the moment bs->job is always NULL when dataplane is active because op blockers prevent blockjobs from starting. Once th

[Qemu-devel] [PATCH 05/11] blockjob: add block_job_defer_to_main_loop()

2014-10-01 Thread Stefan Hajnoczi
Block jobs will run in the BlockDriverState's AioContext, which may not always be the QEMU main loop. There are some block layer APIs that are either not thread-safe or risk lock ordering problems. This includes bdrv_unref(), bdrv_close(), and anything that calls bdrv_drain_all(). The block_job_

[Qemu-devel] [PATCH 02/11] blockdev: acquire AioContext in do_qmp_query_block_jobs_one()

2014-10-01 Thread Stefan Hajnoczi
Make sure that query-block-jobs acquires the BlockDriverState AioContext so that the blockjob isn't running in another thread while we access its state. Signed-off-by: Stefan Hajnoczi --- blockdev.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/blockdev.c b/blockde

[Qemu-devel] [PATCH 00/11] block: allow blockjobs to coexist with dataplane

2014-10-01 Thread Stefan Hajnoczi
Almost all the infrastructure is in place to make blockjobs safe for use with dataplane: * Op blockers all us to exclude commands that could conflict with a blockjob or dataplane. * AioContext acquire/release allows threads to temporarily access a BlockDriverState that is running in a

Re: [Qemu-devel] [PATCH v4 12/23] block: Rename BlockDriverCompletionFunc to BlockCompletionFunc

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: I'll use it with block backends shortly, and the name is going to fit badly there. It's a block layer thing anyway, not just a block driver thing. Signed-off-by: Markus Armbruster --- block.c | 30 +++--

Re: [Qemu-devel] [PATCH v4 11/23] block: Rename BlockDriverAIOCB* to BlockAIOCB*

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: I'll use BlockDriverAIOCB with block backends shortly, and the name is going to fit badly there. It's a block layer thing anyway, not just a block driver thing. Signed-off-by: Markus Armbruster --- block-migration.c | 2 +- block.c

Re: [Qemu-devel] [PATCH] virtio-balloon: Tweak recent fix for integer overflow

2014-10-01 Thread Eric Blake
On 10/01/2014 10:43 AM, Markus Armbruster wrote: > Commit 1f9296b avoids "other kinds of overflow" by limiting the > polling interval to UINT_MAX. The computations to protect are done in > 64 bits. This is indeed safe when unsigned is 32 bits, as it commonly > is. It isn't when unsigned is 64 bi

[Qemu-devel] [PATCH] virtio-balloon: Tweak recent fix for integer overflow

2014-10-01 Thread Markus Armbruster
Commit 1f9296b avoids "other kinds of overflow" by limiting the polling interval to UINT_MAX. The computations to protect are done in 64 bits. This is indeed safe when unsigned is 32 bits, as it commonly is. It isn't when unsigned is 64 bits. Purely theoretical; I'm not aware of such a system.

Re: [Qemu-devel] Request for help

2014-10-01 Thread Christopher Covington
Hi Martin, On 10/01/2014 09:50 AM, Martin Townsend wrote: > Hi, > > I'm looking into creating a virtualised test bed for an 802.15.4 network. > Currently I have QEMU running and emulating our HW which bridges the > Ethernet from the guest to the host. What I would like to do is something > simil

Re: [Qemu-devel] pending target-mips patches

2014-10-01 Thread Andreas Färber
Hi Leon, Am 01.10.2014 um 17:35 schrieb Leon Alrae: > I noticed that it's quite difficult to get target-mips changes > reviewed/accepted. There is already a queue of relatively big features > and bug fixes which are stuck for months. Does anyone have an idea how > to improve this situation? Wouldn

Re: [Qemu-devel] pending target-mips patches

2014-10-01 Thread Peter Maydell
On 1 October 2014 16:35, Leon Alrae wrote: > I noticed that it's quite difficult to get target-mips changes > reviewed/accepted. There is already a queue of relatively big features > and bug fixes which are stuck for months. Does anyone have an idea how > to improve this situation? Wouldn't it hel

Re: [Qemu-devel] [PATCHv2 1/2] util: introduce bitmap_try_new

2014-10-01 Thread Dr. David Alan Gilbert
* Peter Lieven (p...@kamp.de) wrote: > regular bitmap_new simply aborts if the memory allocation fails. > bitmap_try_new returns NULL on failure and allows for proper > error handling. > > Signed-off-by: Peter Lieven > --- > include/qemu/bitmap.h | 13 +++-- > 1 file changed, 11 insert

Re: [Qemu-devel] [PATCH v2 4/7] tests: Add unit test for X86CPU code

2014-10-01 Thread Eduardo Habkost
On Wed, Oct 01, 2014 at 12:20:18AM +0200, Paolo Bonzini wrote: > Il 30/09/2014 20:26, Eduardo Habkost ha scritto: > > Reasoning for each object file included in the test binary: > > * qom/cpu.o - for TYPE_CPU. Dependencies: > >* qom/qom-qobject.o > > * qom/qdev.o - for TYPE_DEVICE. Dependenci

Re: [Qemu-devel] [PATCH v4 09/23] block: Merge BlockBackend and BlockDriverState name spaces

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: BlockBackend's name space is separate only to keep the initial patches simple. Time to merge the two. Retain bdrv_find() and bdrv_get_device_name() for now, to keep this series manageable. Signed-off-by: Markus Armbruster --- block.c

Re: [Qemu-devel] [PATCH v4 08/23] block: Eliminate BlockDriverState member device_name[]

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: device_name[] can become non-empty only in bdrv_new_root() and bdrv_move_feature_fields(). The latter is used only to undo damage done by bdrv_swap(). The former is called only by blk_new_with_bs(). Therefore, when a BlockDriverState's device_name[]

Re: [Qemu-devel] [PATCH v2 1/7] tests: Move fake yield_until_fd_readable() to coroutine-stub.c

2014-10-01 Thread Eduardo Habkost
On Wed, Oct 01, 2014 at 12:17:50AM +0200, Paolo Bonzini wrote: > Il 30/09/2014 20:26, Eduardo Habkost ha scritto: > > Other test code will use the function. > > > > Signed-off-by: Eduardo Habkost > > --- > > tests/Makefile | 1 + > > tests/coroutine-stub.c | 13 + > > tests/

Re: [Qemu-devel] [PATCH v2 5/5] target-tricore: Add instructions of BO opcode format

2014-10-01 Thread Richard Henderson
On 10/01/2014 02:35 AM, Bastian Koppelmann wrote: > +case OPC2_32_BO_ST_A_PREINC: > +tcg_gen_addi_tl(cpu_gpr_a[r2], cpu_gpr_a[r2], off10); > +tcg_gen_qemu_st_tl(cpu_gpr_a[r1], cpu_gpr_a[r2], ctx->mem_idx, > + MO_LESL); > +break; The writeback t

Re: [Qemu-devel] [Xen-devel] [PATCH 1/1] xen-hvm.c: Add support for Xen access to vmport

2014-10-01 Thread Anthony Liguori
On Wed, Oct 1, 2014 at 7:44 AM, Ian Campbell wrote: > On Wed, 2014-10-01 at 10:20 +0100, Stefano Stabellini wrote: >> I wonder if we could send both ioreqs at once from Xen and back from >> QEMU. Or maybe append the registers to IOREQ_TYPE_VMWARE_PORT, changing >> the size of ioreq_t only for this

Re: [Qemu-devel] [PATCH v4 04/23] block: Connect BlockBackend and DriveInfo

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: Make the BlockBackend own the DriveInfo. Change blockdev_init() to return the BlockBackend instead of the DriveInfo. Signed-off-by: Markus Armbruster --- block.c | 2 -- block/block-backend.c | 38 +

Re: [Qemu-devel] [PATCH v2 4/5] target-tricore: Add instructions of BIT opcode format

2014-10-01 Thread Richard Henderson
On 10/01/2014 02:35 AM, Bastian Koppelmann wrote: > +case OPC2_32_BIT_AND_NOR_T: > +#if defined TCG_TARGET_HAS_nor_i32 > +gen_bit_2op(cpu_gpr_d[r3], cpu_gpr_d[r1], cpu_gpr_d[r2], > +pos1, pos2, &tcg_gen_nor_tl, &tcg_gen_and_tl); > +#else These are *always* defined.

Re: [Qemu-devel] [PATCH v2 2/5] target-tricore: Add instructions of ABS, ABSB opcode format

2014-10-01 Thread Richard Henderson
On 10/01/2014 02:35 AM, Bastian Koppelmann wrote: > Add instructions of ABS, ABSB opcode format. > Add microcode generator functions for ld/st of two 32bit reg as one 64bit > value. > Add microcode generator functions for ldmst and swap. > Add helper ldlcx, lducx, stlcx and stucx. > > Signed-off-

Re: [Qemu-devel] [PATCH v2 2/2] block: Make op blockers recursive

2014-10-01 Thread Benoît Canet
> > > > The main purpose of this is mirror.c and commit.c would form BDS loops on > > completion. > > These callers could break the look manually but the code would fail > > if a loop is not breaked and the blocker function are called on it. > > So the blocker code have to handle recursion loops.

[Qemu-devel] pending target-mips patches

2014-10-01 Thread Leon Alrae
Hi All, I noticed that it's quite difficult to get target-mips changes reviewed/accepted. There is already a queue of relatively big features and bug fixes which are stuck for months. Does anyone have an idea how to improve this situation? Wouldn't it help to have a target-mips co-maintainer assis

Re: [Qemu-devel] [PATCH v4 03/23] block: Connect BlockBackend to BlockDriverState

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: Convenience function blk_new_with_bs() creates a BlockBackend with its BlockDriverState. Callers have to unref both. The commit after next will relieve them of the need to unref the BlockDriverState. Complication: due to the silly way drive_del wor

Re: [Qemu-devel] [PATCH v4 02/23] block: New BlockBackend

2014-10-01 Thread Max Reitz
On 30.09.2014 21:25, Markus Armbruster wrote: A block device consists of a frontend device model and a backend. A block backend has a tree of block drivers doing the actual work. The tree is managed by the block layer. We currently use a single abstraction BlockDriverState both for tree nodes a

Re: [Qemu-devel] [PATCH v2 2/2] block: Make op blockers recursive

2014-10-01 Thread Jeff Cody
On Wed, Oct 01, 2014 at 09:29:44AM +, Benoît Canet wrote: > > Thanks a lot for reviewing this patch. > > Since the code is not trivial I will give my arguments for writing it > this way. > Thanks, that is very helpful. > > > > +/* block recursively a BDS > > > + * > > > + * If base != NULL

Re: [Qemu-devel] [PATCH 1/1] xen-hvm.c: Add support for Xen access to vmport

2014-10-01 Thread Paul Durrant
> -Original Message- > From: qemu-devel-bounces+paul.durrant=citrix@nongnu.org > [mailto:qemu-devel-bounces+paul.durrant=citrix@nongnu.org] On > Behalf Of Stefano Stabellini > Sent: 01 October 2014 10:20 > To: Slutz, Donald Christopher > Cc: xen-de...@lists.xensource.com; Stefano St

Re: [Qemu-devel] [RFC PATCH v0 0/2] target-ppc: Fix an invalid free

2014-10-01 Thread Alexander Graf
On 26.09.14 11:07, Bharata B Rao wrote: > g_free() in target-ppc/translate_init.c:ppc_cpu_unrealizefn() can fail > due to invalid pointer being passed to it. Fix this along with a cleanup. > > I have never seen ppc_cpu_unrealizefn() getting called for sPAPR guests, > but I ran into this issue wh

Re: [Qemu-devel] [PATCH] hw/pci/ppc4xx_pci.c: Remove unused pci4xx_cfgaddr_read/write/ops

2014-10-01 Thread Alexander Graf
On 14.09.14 21:38, Peter Maydell wrote: > The MemoryRegionOps struct pci4xx_cfgaddr_ops and the read and > write functions it references are all unused; remove them. > > Signed-off-by: Peter Maydell Thanks, applied to ppc-next. Alex

Re: [Qemu-devel] [Xen-devel] [PATCH 1/1] xen-hvm.c: Add support for Xen access to vmport

2014-10-01 Thread Ian Campbell
On Wed, 2014-10-01 at 10:20 +0100, Stefano Stabellini wrote: > I wonder if we could send both ioreqs at once from Xen and back from > QEMU. Or maybe append the registers to IOREQ_TYPE_VMWARE_PORT, changing > the size of ioreq_t only for this ioreq type. Random idea: Why new add a IOREQ_TYPE_FULL_S

Re: [Qemu-devel] [PATCH v5 05/33] target-arm: make arm_current_pl() return PL3

2014-10-01 Thread Greg Bellows
Yes, good catch. Fixed in next version. On 30 September 2014 20:23, Sergey Fedorov wrote: > On 30.09.2014 14:49, Greg Bellows wrote: > > From: Fabian Aggeler > > > > Make arm_current_pl() return PL3 for secure PL1 and monitor mode. > > Increase MMU modes since mmu_index is directly infered fro

Re: [Qemu-devel] [PATCH v5 31/33] target-arm: make c13 cp regs banked (FCSEIDR, ...)

2014-10-01 Thread Greg Bellows
I have fixed-up some of the bank definitions and names so they more accurately match the ARMv8 mappings. In next version. On 30 September 2014 16:49, Greg Bellows wrote: > From: Fabian Aggeler > > When EL3 is running in Aarch32 (or ARMv7 with Security Extensions) > FCSEIDR, CONTEXTIDR, TPIDRUR

Re: [Qemu-devel] [PATCH 04/12] spapr_pci: add set-indicator RTAS interface

2014-10-01 Thread Alexander Graf
On 01.10.14 00:08, Michael Roth wrote: > Quoting Alexander Graf (2014-08-26 06:36:57) >> On 19.08.14 02:21, Michael Roth wrote: >>> From: Mike Day >>> >>> Signed-off-by: Mike Day >>> Signed-off-by: Michael Roth >>> --- >>> hw/ppc/spapr_pci.c | 119 >>>

Re: [Qemu-devel] hid keyboard event handling

2014-10-01 Thread Michael Walle
Am 2014-10-01 16:17, schrieb Gerd Hoffmann: Hi, My input device model (milkymist-softusb.c) polls (hid_keyboard_poll()) exactly once per event callback. Actually, i don't see any other way to do it because the hid_keyboard_poll() always succeeds even if there is no event in the queue. You c

[Qemu-devel] [PATCH 3/3] PPC: E500: Hook up power off GPIO to GPIO controller

2014-10-01 Thread Alexander Graf
Now that we have a working GPIO controller on the virt machine, we can use one pin to notify QEMU that the guests wants to power off the system. Signed-off-by: Alexander Graf --- hw/ppc/e500.c | 24 1 file changed, 24 insertions(+) diff --git a/hw/ppc/e500.c b/hw/ppc/e5

Re: [Qemu-devel] hid keyboard event handling

2014-10-01 Thread Gerd Hoffmann
Hi, > My input device model (milkymist-softusb.c) polls (hid_keyboard_poll()) > exactly once per event callback. Actually, i don't see any other way to > do it because the hid_keyboard_poll() always succeeds even if there is > no event in the queue. You can use hid_has_events() to figure whe

[Qemu-devel] [PATCH 2/3] PPC: E500: Instantiate MPC8XXX gpio controller on virt machine

2014-10-01 Thread Alexander Graf
With the e500 virt machine, we don't have to adhere to the exact hardware layout of an mpc8544ds board. So there we can just add a qoriq compatible GPIO controller into the system that we can add a power off hook to. Signed-off-by: Alexander Graf --- hw/ppc/e500.c | 32 ++

[Qemu-devel] [PATCH 1/3] PPC: Add MPC8XXX gpio controller

2014-10-01 Thread Alexander Graf
On e500 systems most SoCs implement a common GPIO controller that Linux calls the "mpc8xxx" gpio controller. This patch adds an emulation model for this device. Signed-off-by: Alexander Graf --- hw/gpio/Makefile.objs | 1 + hw/gpio/mpc8xxx.c | 217 ++

[Qemu-devel] [PATCH 0/3] PPC: E500: Add power off GPIO

2014-10-01 Thread Alexander Graf
When running a virtual machine, you eventually want to shut it down and see it properly end the QEMU process. The magic that makes this work is the "power off" code path that a guest OS uses to indicate that it wants to power off the host machine. This logic was missing from our e500 virt machine.

Re: [Qemu-devel] [PATCH v4 2/3] pcie: add check for ari capability of pcie devices

2014-10-01 Thread Marcel Apfelbaum
On Wed, 2014-10-01 at 07:26 +0200, Knut Omang wrote: > On Tue, 2014-09-30 at 21:38 +0800, Gonglei wrote: > > > Subject: Re: [Qemu-devel] [PATCH v4 2/3] pcie: add check for ari > > > capability of > > > pcie devices > > > > > > On Tue, Sep 30, 2014 at 06:11:25PM +0800, arei.gong...@huawei.com wrot

  1   2   >