qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] fc1084: block: m25p80: sync_page(): Deindent


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] fc1084: block: m25p80: sync_page(): Deindent function body...
Date: Mon, 23 Jun 2014 05:30:05 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: fc1084aad72297cb6dbccf4c78473b5390ff6c87
      
https://github.com/qemu/qemu/commit/fc1084aad72297cb6dbccf4c78473b5390ff6c87
  Author: Peter Crosthwaite <address@hidden>
  Date:   2014-06-21 (Sat, 21 Jun 2014)

  Changed paths:
    M hw/block/m25p80.c

  Log Message:
  -----------
  block: m25p80: sync_page(): Deindent function body.

sync_page() was conditionalizing it's whole fn body on the bdrv being
non-null. Just return for the function immediately on NULL brdv and
get rid of the big if.

Makes implementation consistent with flash_zynq_area().

Signed-off-by: Peter Crosthwaite <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 999e5aa5cec71d7138c4b5271092f59ca85f9f6b
      
https://github.com/qemu/qemu/commit/999e5aa5cec71d7138c4b5271092f59ca85f9f6b
  Author: Peter Crosthwaite <address@hidden>
  Date:   2014-06-21 (Sat, 21 Jun 2014)

  Changed paths:
    M hw/block/m25p80.c

  Log Message:
  -----------
  block: m25p80: Support read only bdrvs.

By just never doing write-backs. This is completely invisible to the
guest, as the entire storage area is implemented as device state (at
realize time the entire drive is read in).

Signed-off-by: Peter Crosthwaite <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 435db4cf29b88b6612e30acda01cd18788dff458
      
https://github.com/qemu/qemu/commit/435db4cf29b88b6612e30acda01cd18788dff458
  Author: Chunyan Liu <address@hidden>
  Date:   2014-06-21 (Sat, 21 Jun 2014)

  Changed paths:
    M util/qemu-option.c

  Log Message:
  -----------
  QemuOpts: check NULL opts in qemu_opt_get functions

Some places will call bdrv_create_file(filename, NULL, &local_err), where
opts is NULL. Check NULL in qemu_opt_get and qemu_opt_get_*_del functions,
to avoid extra effort of checking opts before calling them every time.

Signed-off-by: Chunyan Liu <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 5d5da114b39d3cf187a69dcf5eaca7eaf886c041
      
https://github.com/qemu/qemu/commit/5d5da114b39d3cf187a69dcf5eaca7eaf886c041
  Author: Liu Yuan <address@hidden>
  Date:   2014-06-23 (Mon, 23 Jun 2014)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: fix NULL dereference in sd_create

Following command

qemu-img create -f qcow2 sheepdog:test 20g

will cause core dump because aio_context is NULL in sd_create. We should
initialize it by qemu_get_aio_context() to avoid NULL dereference.

Cc: address@hidden
Cc: Kevin Wolf <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Signed-off-by: Liu Yuan <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 74892d2468b9f0c56b915ce94848d6f7fac39740
      
https://github.com/qemu/qemu/commit/74892d2468b9f0c56b915ce94848d6f7fac39740
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-06-23 (Mon, 23 Jun 2014)

  Changed paths:
    M cpus.c
    M include/sysemu/sysemu.h
    M target-lm32/op_helper.c
    M vl.c

  Log Message:
  -----------
  vl: allow other threads to do qemu_system_vmstop_request

There patch protects vmstop_requested with a lock and introduces
qemu_system_vmstop_request_prepare.

Together with the new call to qemu_vmstop_requested in vm_start,
qemu_system_vmstop_request_prepare avoids a race where the VM could remain
stopped even though the iostatus of a block device has already been set
(for example).

qemu_system_vmstop_request_prepare however also lets the caller thread
delay observation of the state change until it has itself communicated
that change to the user.  This delay avoids any possibility of a wrong
reordering of the BLOCK_IO_ERROR event and the subsequent STOP event.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 2bd3bce8efebe86b031beab5c0e3b9bbaec0b502
      
https://github.com/qemu/qemu/commit/2bd3bce8efebe86b031beab5c0e3b9bbaec0b502
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-06-23 (Mon, 23 Jun 2014)

  Changed paths:
    M block.c
    M docs/qmp/qmp-events.txt
    M stubs/vm-stop.c

  Log Message:
  -----------
  block: asynchronously stop the VM on I/O errors

With virtio-blk dataplane, I/O errors might occur while QEMU is
not in the main I/O thread.  However, it's invalid to call vm_stop
when we're neither in a VCPU thread nor in the main I/O thread,
even if we were to take the iothread mutex around it.

To avoid this problem, we can raise a request to the main I/O thread,
similar to what QEMU does when vm_stop is called from a CPU thread.
We know that bdrv_error_action is called from an AIO callback, and
the moment at which the callback will fire is not well-defined; it
depends on the moment at which the disk or OS finishes the operation,
which can happen at any time.  Note that QEMU is certainly not in a CPU
thread and we do not need to call cpu_stop_current() like vm_stop() does.

However, we need to ensure that any action taken by management will
result in correct detection of the error _and_ a running VM.  In particular:

- the event must be raised after the iostatus has been set, so that
"info block" will return an iostatus that matches the event.

- the VM must be stopped after the iostatus has been set, so that
"info block" will return an iostatus that matches the runstate.

The ordering between the STOP and BLOCK_IO_ERROR events is preserved;
BLOCK_IO_ERROR is documented to come first.

This makes bdrv_error_action() thread safe (assuming QMP events are,
which is attacked by a separate series).

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d9c1647d896d3192cba9dbf98fb7efab876edde5
      
https://github.com/qemu/qemu/commit/d9c1647d896d3192cba9dbf98fb7efab876edde5
  Author: Peter Maydell <address@hidden>
  Date:   2014-06-23 (Mon, 23 Jun 2014)

  Changed paths:
    M block.c
    M block/sheepdog.c
    M cpus.c
    M docs/qmp/qmp-events.txt
    M hw/block/m25p80.c
    M include/sysemu/sysemu.h
    M stubs/vm-stop.c
    M target-lm32/op_helper.c
    M util/qemu-option.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into 
staging

Block pull request

# gpg: Signature made Mon 23 Jun 2014 09:53:49 BST using RSA key ID 81AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>"
# gpg:                 aka "Stefan Hajnoczi <address@hidden>"

* remotes/stefanha/tags/block-pull-request:
  block: asynchronously stop the VM on I/O errors
  vl: allow other threads to do qemu_system_vmstop_request
  sheepdog: fix NULL dereference in sd_create
  QemuOpts: check NULL opts in qemu_opt_get functions
  block: m25p80: Support read only bdrvs.
  block: m25p80: sync_page(): Deindent function body.

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/910f66fcda2d...d9c1647d896d

reply via email to

[Prev in Thread] Current Thread [Next in Thread]