Skip to content

Commits

Permalink
block-replicat…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Jun 18, 2015

  1. Implement new driver for block replication

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    66789a7 View commit details
    Browse the repository at this point in the history
  2. quorum: allow ignoring child errors

    If the child is not ready, read/write/getlength/flush will
    return -errno. It is not critical error, and can be ignored:
    1. read/write:
       Just not report the error event.
    2. getlength:
       just ignore it. If all children's getlength return -errno,
       and be ignored, return -EIO.
    3. flush:
       Just ignore it. If all children's getlength return -errno,
       and be ignored, return 0.
    
    Usage: children.x.ignore-errors=true
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    53585d0 View commit details
    Browse the repository at this point in the history
  3. introduce a new API qemu_opts_absorb_qdict_by_index()

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    44d45e7 View commit details
    Browse the repository at this point in the history
  4. quorum: implement block driver interfaces for block replication

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    cb7346b View commit details
    Browse the repository at this point in the history
  5. skip nbd_target when starting block replication

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    66a5363 View commit details
    Browse the repository at this point in the history
  6. Add new block driver interfaces to control block replication

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    Cc: Luiz Capitulino <lcapitulino@redhat.com>
    Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    ac5f5ec View commit details
    Browse the repository at this point in the history
  7. NBD client: connect to nbd server later

    The secondary qemu starts later than the primary qemu, so we
    cannot connect to nbd server in bdrv_open(). Introduce a new
    open flags to control it.
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    584b2b3 View commit details
    Browse the repository at this point in the history
  8. Introduce a new -drive option to control whether to connect to remote…

    … target
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    332e416 View commit details
    Browse the repository at this point in the history
  9. NBD client: implement block driver interfaces to connect/disconnect N…

    …BD server
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    7a54c93 View commit details
    Browse the repository at this point in the history
  10. Add new block driver interface to connect/disconnect the remote target

    In some cases, we want to connect/disconnect the remote target when
    we need, not in bdrv_open()/bdrv_close().
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    8ccf365 View commit details
    Browse the repository at this point in the history
  11. Don't allow a disk use backing reference target

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    618a7bc View commit details
    Browse the repository at this point in the history
  12. Backup: clear all bitmap when doing block checkpoint

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    Cc: Jeff Cody <jcody@redhat.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    05e41a8 View commit details
    Browse the repository at this point in the history
  13. block: Parse "backing_reference" option to reference existing BDS

    Usage:
    -drive file=xxx,id=Y, \
    -drive file=xxxx,id=X,backing_reference.drive_id=Y,backing_reference.hidden-disk.*
    
    It will create such backing chain:
                   {virtio-blk dev 'Y'}                                      {virtio-blk dev 'X'}
                             |                                                          |
                             |                                                          |
                             v                                                          v
    
        [base] <- [mid] <- ( Y )  <----------------- (hidden target) <--------------- ( X )
    
                             v                              ^
                             v                              ^
                             v                              ^
                             v                              ^
                             >>>> drive-backup sync=none >>>>
    
    X's backing file is hidden-disk, and hidden-disk's backing file is Y.
    Disk Y may be opened or reopened in read-write mode, so A block backup
    job is automatically created: source is Y and target is hidden disk.
    Active disk X, hidden disk, and Y are all on the same AioContext.
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    371268d View commit details
    Browse the repository at this point in the history
  14. Allow creating backup jobs when opening BDS

    When opening BDS, we need to create backup jobs for
    image-fleecing.
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    Cc: Jeff Cody <jcody@redhat.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    7f03ba7 View commit details
    Browse the repository at this point in the history
  15. allow writing to the backing file

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    cdb04f0 View commit details
    Browse the repository at this point in the history
  16. docs: block replication's description

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    c694010 View commit details
    Browse the repository at this point in the history
  17. iov: don't touch iov in iov_send_recv()

    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    173f2ad View commit details
    Browse the repository at this point in the history
  18. mirror: correct buf_size

    If bus_size is less than 0, the command fails.
    If buf_size is 0, use DEFAULT_MIRROR_BUF_SIZE.
    If buf_size % granularity is not 0, mirror_free_init() will
    do dangerous things.
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Reviewed-by: Fam Zheng <famz@redhat.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    d8b6fb1 View commit details
    Browse the repository at this point in the history
  19. util/hbitmap: Add an API to reset all set bits in hbitmap

    The function bdrv_clear_dirty_bitmap() is updated to use
    faster hbitmap_reset_all() call.
    
    Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
    Signed-off-by: Gonglei <arei.gonglei@huawei.com>
    Acked-by: Paolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Reviewed-by: John Snow <jsnow@redhat.com>
    wencongyang committed Jun 18, 2015
    Copy the full SHA
    41b7a8d View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2015

  1. Merge remote-tracking branch 'remotes/agraf/tags/signed-s390-for-upst…

    …ream' into staging
    
    Patch queue for s390 - 2015-06-17
    
    This is a special one. Two awesome features in one pull request:
    
      - CCW support for TCG
      - Watchpoint support for TCG
    
    To celebrate this, we also switch the default machine model from s390-virtio
    to s390-ccw and give users a fully working s390x model again!
    
    # gpg: Signature made Wed Jun 17 11:42:26 2015 BST using RSA key ID 03FEDC60
    # gpg: Good signature from "Alexander Graf <agraf@suse.de>"
    # gpg:                 aka "Alexander Graf <alex@csgraf.de>"
    
    * remotes/agraf/tags/signed-s390-for-upstream: (26 commits)
      s390x: Switch to s390-ccw machine as default
      target-s390x: PER: add Breaking-Event-Address register
      target-s390x: PER instruction-fetch nullification event support
      target-s390x: PER store-using-real-address event support
      target-s390x: PER storage-alteration event support
      translate-all: fix watchpoints if retranslation not possible
      target-s390x: PER instruction-fetch event support
      target-s390x: PER successful-branching event support
      target-s390x: basic PER event handling
      target-s390x: add get_per_in_range function
      target-s390x: add get_per_atmid function
      target-s390x: add PER related constants
      target-s390x: mvc_fast_memmove: access memory through softmmu
      target-s390x: mvc_fast_memset: access memory through softmmu
      target-s390x: function to adjust the length wrt page boundary
      softmmu: provide tlb_vaddr_to_host function for user mode
      target-s390x: wire up I/O instructions in TCG mode
      target-s390x: wire up DIAG REIPL in TCG mode
      target-s390x: wire up DIAG IPL in TCG mode
      target-s390x: fix s390_cpu_initial_reset
      ...
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Jun 17, 2015
    Copy the full SHA
    f754c3c View commit details
    Browse the repository at this point in the history
  2. s390x: Switch to s390-ccw machine as default

    We now finally have TCG support for the basic set of instructions necessary
    to run the s390-ccw machine. That means in any aspect possible that machine
    type is now superior to the legacy s390-virtio machine.
    
    Switch over to the ccw machine as default. That way people don't get a halfway
    broken machine with the s390x target.
    
    Signed-off-by: Alexander Graf <agraf@suse.de>
    Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    agraf committed Jun 17, 2015
    Copy the full SHA
    1f68f1d View commit details
    Browse the repository at this point in the history
  3. target-s390x: PER: add Breaking-Event-Address register

    This patch adds support for PER Breaking-Event-Address register. Like
    real hardware, it save the current PSW address when the PSW address is
    changed by an instruction. We have to take care of optimizations QEMU
    does, a branch to the next instruction is still a branch.
    
    This register is copied to low core memory when a program exception
    happens.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    3da0ab3 View commit details
    Browse the repository at this point in the history
  4. target-s390x: PER instruction-fetch nullification event support

    For the instruction-fetch nullification event, we just reuse the
    existing instruction-fetch code and trigger the exception immediately
    in that case.
    
    There is no need to save the CPU state in the TCG code as it has been
    saved by the previous instruction before calling the per_check_exception
    helper.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    83bb161 View commit details
    Browse the repository at this point in the history
  5. target-s390x: PER store-using-real-address event support

    This PER event happens each time the STURA or STURG instructions are
    used. As they use helpers, we can just save the event in the PER code
    there, if enabled.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    2f54394 View commit details
    Browse the repository at this point in the history
  6. target-s390x: PER storage-alteration event support

    For the PER storage-alteration event we can use the QEMU watchpoint
    infrastructure. When PER is enabled or PER control register changed we
    enable the corresponding watchpoints. When a watchpoint arises we can
    save the event. Unfortunately the current code does not provide the
    address space used to trigger the watchpoint. For now we assume it comes
    from the default ASC.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    311918b View commit details
    Browse the repository at this point in the history
  7. translate-all: fix watchpoints if retranslation not possible

    The tb_check_watchpoint function currently assumes that all memory
    access is done either directly through the TCG code or through an
    helper which knows its return address. This is obviously wrong as the
    helpers use cpu_ldxx/stxx_data functions to access the memory.
    
    Instead of aborting in that case, don't try to retranslate the code, but
    assume that the CPU state (and especially the program counter) has been
    saved before calling the helper. Then invalidate the TB based on this
    address.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    8d302e7 View commit details
    Browse the repository at this point in the history
  8. target-s390x: PER instruction-fetch event support

    For the PER instruction-fetch, we can't use the QEMU breakpoint
    infrastructure as it triggers for a single address and not a full
    address range, and as it actually stop before the instruction and
    not before.
    
    We therefore call an helper with the just fetched instruction address,
    which check if the address is within the PER address range. If it is
    the case, an event is recorded and will be signaled through an
    exception.
    
    Note that we implement here the PER-3 behaviour, that is an invalid
    opcode is not considered as an instruction fetch. Without PER-3 this
    behavious is undefined.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    f0e0d81 View commit details
    Browse the repository at this point in the history
  9. target-s390x: PER successful-branching event support

    For the PER successful-branching event support, we can't rely on any
    QEMU infrastucture. We therefore call an helper in all places where
    a branch can be taken. We have to pay attention to the branch to next
    case, as it's still a taken branch.
    
    We don't need to care about the cases using goto_tb, as we have disabled
    them in the previous patch.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    2c2275e View commit details
    Browse the repository at this point in the history
  10. target-s390x: basic PER event handling

    This patch add basic support to generate PER exceptions. It adds two
    fields to the cpu structure to record for the PER address and PER
    code & ATMID values. When an exception is triggered and a PER event is
    pending, the two PER values are copied to the lowcore area.
    
    At the end of an instruction, an helper is checking for a possible
    pending PER event and triggers an exception in that case. For that to
    work with branches, we need to disable TB chaining when PER is
    activated. Fortunately it's already in the TB flags.
    
    Finally in case of a SERVICE CALL exception, we need to trigger the PER
    exception immediately after.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    777c98c View commit details
    Browse the repository at this point in the history
  11. target-s390x: add get_per_in_range function

    This function checks if an address is in between the PER starting
    address and the PER ending address, taking care of a possible
    address range loop.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    d453d10 View commit details
    Browse the repository at this point in the history
  12. target-s390x: add get_per_atmid function

    This function returns the ATMID field that is stored in the
    per_perc_atmid lowcore entry.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    a8f931a View commit details
    Browse the repository at this point in the history
  13. target-s390x: add PER related constants

    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    fb01bf4 View commit details
    Browse the repository at this point in the history
  14. target-s390x: mvc_fast_memmove: access memory through softmmu

    mvc_fast_memmove is bypassing the softmmu functions, getting the
    physical source and destination addresses using the mmu_translate
    function and accessing the corresponding physical memory. This
    prevents watchpoints to work correctly.
    
    Instead use the tlb_vaddr_to_host function to get the host addresses
    corresponding to the guest source and destination addresses through the
    softmmu code and fallback to the byte level code in case the
    corresponding address are not in the QEMU TLB or being examined through
    a watchpoint. As a bonus it works even for area crossing pages by
    splitting the are into chunks contained in a single page, bringing some
    performances improvements. We can therefore remove the 8-byte
    loads/stores method, as it is now quite unlikely to be used.
    
    At the same time change the name of the function to fast_memmove as it's
    not specific to mvc and use the same argument order as the C memmove
    function.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    6da528d View commit details
    Browse the repository at this point in the history
  15. target-s390x: mvc_fast_memset: access memory through softmmu

    mvc_fast_memset is bypassing the softmmu functions, getting the
    physical address using the mmu_translate function and accessing the
    corresponding physical memory. This prevents watchpoints to work
    correctly.
    
    Instead use the tlb_vaddr_to_host function to get the host address
    corresponding to the guest address through the softmmu code and fallback
    to the byte level code in case the corresponding address is not in the
    QEMU TLB or being examined through a watchpoint. As a bonus it works
    even for area crossing pages by splitting the are into chunks contained
    in a single page, bringing some performances improvements.
    
    At the same time change the name of the function to fast_memset as it's
    not specific to mvc and use the same argument order as the C memset
    function.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    fc89efe View commit details
    Browse the repository at this point in the history
  16. target-s390x: function to adjust the length wrt page boundary

    This patch adds a function to adjust the length of a transfer so that
    it doesn't cross a page boundary in softmmu mode. It does nothing in
    user mode.
    
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    aurel32 authored and agraf committed Jun 17, 2015
    Copy the full SHA
    d7ce6b7 View commit details
    Browse the repository at this point in the history
Older