- 25 5月, 2013 18 次提交
-
-
由 Anthony Liguori 提交于
# By Paolo Bonzini (11) and others # Via Paolo Bonzini * bonzini/iommu-for-anthony: memory: clean up phys_page_find memory: populate FlatView for new address spaces memory: limit sections in the radix tree to the actual address space size s390x: reduce TARGET_PHYS_ADDR_SPACE_BITS to 62 memory: fix address space initialization/destruction memory: make memory_global_sync_dirty_bitmap take an AddressSpace memory: do not duplicate memory_region_destructor_none memory: Rename readable flag to romd_mode memory: Replace open-coded memory_region_is_romd memory: allow memory_region_find() to run on non-root memory regions memory: assert that PhysPageEntry's ptr does not overflow exec: eliminate stq_phys_notdirty exec: make qemu_get_ram_ptr private exec: eliminate qemu_put_ram_ptr exec: remove obsolete comment Message-id: 1369414987-8839-1-git-send-email-pbonzini@redhat.com Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Anthony Liguori 提交于
# By Alasdair McLeay (1) and Stefan Hajnoczi (1) # Via Stefan Hajnoczi * stefanha/net: rtl8139: flush queued packets when RxBufPtr is written net: support for bridged networking on Mac OS X Message-id: 1369406295-20411-1-git-send-email-stefanha@redhat.com Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Anthony Liguori 提交于
# By Wenchao Xia (5) and others # Via Stefan Hajnoczi * stefanha/block: coroutine: stop using AioContext in CoQueue coroutine: protect global pool with a mutex qemu-iotests: Try creating huge qcow2 image qcow2.py: Subcommand for changing header fields qemu-io: Fix 'map' output blockdev: Rename BlockdevAction -> TransactionAction block: make all steps in qmp_transaction() as callback block: package rollback code in qmp_transaction() block: package committing code in qmp_transaction() block: move input parsing code in qmp_transaction() block: package preparation code in qmp_transaction() Message-id: 1369405947-14818-1-git-send-email-stefanha@redhat.com Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Paolo Bonzini 提交于
Remove the goto. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
Even a new address space might have a non-empty FlatView. In order to initialize it properly, address_space_init should (a) call memory_region_transaction_commit after the address space is inserted into the list; (b) force memory_region_transaction_commit to do something. This bug was latent so far because all address spaces started empty, including the PCI address space where the bus master region is initially disabled. However, the target address space of an IOMMU is usually rooted at get_system_memory(), which might not be empty at the time the IOMMU is created. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Avi Kivity 提交于
The radix tree is statically sized to fit TARGET_PHYS_ADDR_SPACE_BITS. If a larger memory region is registered, it will overflow. Fix by limiting any section in the radix tree to the supported size. This problem was not observed earlier since artificial regions (containers and aliases) are eliminated by the memory core, leaving only device regions which have reasonable sizes. An IOMMU however cannot be eliminated by the memory core, and may have an artificial size. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NAvi Kivity <avi.kivity@gmail.com> [ Fail the build if TARGET_PHYS_ADDR_SPACE_BITS is too large - Paolo ] Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
With the next patch, the memory API will complain if the TARGET_PHYS_ADDR_SPACE_BITS gets dangerously close to an overflow. s390x can handle up to 64 bit of physical address space from its page tables, but we never use that much. Just decrease the value. Cc: Alexander Graf <agraf@suse.de> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Avi Kivity 提交于
A couple of fields were left uninitialized. This was not observed earlier because all address spaces were statically allocated. Also free allocation for those fields. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NAvi Kivity <avi.kivity@gmail.com> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
Since this is a MemoryListener operation, it only makes sense on an AddressSpace granularity. Suggested-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Jan Kiszka 提交于
"Readable" is a very unfortunate name for this flag because even a rom_device region will always be readable from the guest POV. What differs is the mapping, just like the comments had to explain already. Also, readable could currently be understood as being a generic region flag, but it only applies to rom_device regions. So rename the flag and the function to modify it after the original term "ROMD" which could also be interpreted as "ROM direct", i.e. ROM mode with direct access. In any case, the scope of the flag is clearer now. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Jan Kiszka 提交于
Improves readability. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
-
由 Paolo Bonzini 提交于
memory_region_find() is similar to registering a MemoryListener and checking for the MemoryRegionSections that come from a particular region. There is no reason for this to be limited to a root memory region. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
While sized to 15 bits in PhysPageEntry, the ptr field is ORed into the iotlb entries together with a page-aligned pointer. The ptr field must not overflow into this page-aligned value, assert that it is smaller than the page size. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
It is not used anywhere. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
It is a private interface between exec.c and memory.c. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
由 Paolo Bonzini 提交于
See how we call memory_region_section_addr two lines below to convert a physical address to a base address in the region. Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
-
- 24 5月, 2013 14 次提交
-
-
由 Stefan Hajnoczi 提交于
Net queues support efficient "receive disable". For example, tap's file descriptor will not be polled while its peer has receive disabled. This saves CPU cycles for needlessly copying and then dropping packets which the peer cannot receive. rtl8139 is missing the qemu_flush_queued_packets() call that wakes the queue up when receive becomes possible again. As a result, the Windows 7 guest driver reaches a state where the rtl8139 cannot receive packets. The driver has actually refilled the receive buffer but we never resume reception. The bug can be reproduced by running a large FTP 'get' inside a Windows 7 guest: $ qemu -netdev tap,id=tap0,... -device rtl8139,netdev=tap0 The Linux guest driver does not trigger the bug, probably due to a different buffer management strategy. Reported-by: NOliver Francke <oliver.francke@filoo.de> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Alasdair McLeay 提交于
tun tap can be implemented on Mac OS X using http://tuntaposx.sourceforge.net It behaves in the same way as FreeBSD/OpenBSD implementations, but Qemu needs a patch to use the OpenBS/FreeBSD code. As per the patch listed in this forum thread: http://forum.gns3.net/post17679.html#p17679 And also as used in the MacPorts installation: https://trac.macports.org/browser/trunk/dports/emulators/qemu/files/patch-net-tap-interface.diffSigned-off-by: NAlasdair McLeay <alasdair.mcleay@me.com> Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
qemu_co_queue_next(&queue) arranges that the next queued coroutine is run at a later point in time. This deferred restart is useful because the caller may not want to transfer control yet. This behavior was implemented using QEMUBH in the past, which meant that CoQueue (and hence CoMutex and CoRwlock) had a dependency on the AioContext event loop. This hidden dependency causes trouble when we move to a world with multiple event loops - now qemu_co_queue_next() needs to know which event loop to schedule the QEMUBH in. After pondering how to stash AioContext I realized the best solution is to not use AioContext at all. This patch implements the deferred restart behavior purely in terms of coroutines and no longer uses QEMUBH. Here is how it works: Each Coroutine has a wakeup queue that starts out empty. When qemu_co_queue_next() is called, the next coroutine is added to our wakeup queue. The wakeup queue is processed when we yield or terminate. Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Stefan Hajnoczi 提交于
The coroutine freelist is a global pool of unused coroutines. It avoids the setup/teardown overhead associated with the coroutine lifecycle. Since the pool is global, we need to synchronize access so that coroutines can be used outside the BQL. Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
-
由 Kevin Wolf 提交于
It's supposed to fail gracefully instead of segfaulting. Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Kevin Wolf 提交于
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Kevin Wolf 提交于
The output of the 'map' command in qemu-io used to directly resemble bdrv_is_allocated() and could contain many lines for small chunks that all have the same allocation status. After this patch, they will be coalesced into a single output line for a large chunk. As a side effect, the command gains some error handling. Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Kevin Wolf 提交于
There's no reason to restrict transactions to operations related to block devices, so rename the type now before schema introspection stops us from doing so. Also change the schema documentation of 'transaction' to not refer to block devices or snapshots any more. Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Wenchao Xia 提交于
Make it easier to add other operations to qmp_transaction() by using callbacks, with external snapshots serving as an example implementation of the callbacks. Signed-off-by: NWenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Wenchao Xia 提交于
Signed-off-by: NWenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Wenchao Xia 提交于
The code is simply moved into a separate function. Signed-off-by: NWenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Wenchao Xia 提交于
The code is moved into preparation function, and changed a bit to tip more clearly what it is doing. Signed-off-by: NWenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Wenchao Xia 提交于
The code before really committing is moved into a function. Most code is simply moved from qmp_transaction(), except that on fail it just returns now. Other code such as input parsing is not touched, to make it easier in review. Signed-off-by: NWenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: NKevin Wolf <kwolf@redhat.com> Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com> Reviewed-by: NEric Blake <eblake@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Anthony Liguori 提交于
# By Michael Roth (10) and others # Via Luiz Capitulino * luiz/queue/qmp: monitor: allow to disable the default monitor ui/input.c: replace magic numbers with macros qapi: add native list coverage for QMP input visitor tests qapi: add native list coverage for QMP output visitor tests qapi: add native list coverage for visitor serialization tests qapi: fix visitor serialization tests for numbers/doubles qapi: add QMP input test for large integers json-parser: fix handling of large whole number values qapi: enable generation of native list code qapi: qapi-visit.py, native list support qapi: qapi-visit.py, fix list handling for union types qapi: qapi-types.py, native list support Message-id: 1369333232-24145-1-git-send-email-lcapitulino@redhat.com Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
- 23 5月, 2013 8 次提交
-
-
由 Luiz Capitulino 提交于
Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Amos Kong 提交于
It's clearer to use defined macros than magic numbers. Signed-off-by: NAmos Kong <akong@redhat.com> Reviewed-by: NLei Li <lilei@linux.vnet.ibm.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
This exercises schema-generated visitors for native list types and does some sanity checking on validity of deserialized data. Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
This exercises schema-generated visitors for native list types and does some sanity checking on validity of serialized data. Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
We never actually stored the stringified double values into the strings before we did the comparisons. This left number/double values completely uncovered in test-visitor-serialization tests. Fixing this exposed a bug in our handling of large whole number values in QEMU's JSON parser which is now fixed. Simplify the code while we're at it by dropping the calc_float_string_storage() craziness in favor of GStrings. Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
Large integers previously got capped to LLONG_MAX/LLONG_MIN so we could store them as int64_t. This could lead to silent errors occuring. Now, we use a double to handle these cases. Add a test to confirm that QMPInputVisitor handles this as expected if we're expected an integer value: errors for out of range integer values that got promoted to doubles in this fashion. Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-
由 Michael Roth 提交于
Currently our JSON parser assumes that numbers lacking a fractional value are integers and attempts to store them as QInt/int64 values. This breaks in the case where the number overflows/underflows int64 values (which is still valid JSON) Fix this by detecting such cases and using a QFloat to store the value instead. Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: NLaszlo Ersek <lersek@redhat.com> Reviewed-by: NAmos Kong <akong@redhat.com> Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
-