qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 8e1b02: qemu: add castagnoli crc32c checksum


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 8e1b02: qemu: add castagnoli crc32c checksum algorithm
Date: Fri, 03 May 2013 10:30:11 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 8e1b02b8ef2eefcb2ff3855531d7bc2ea71e1fb4
      
https://github.com/qemu/qemu/commit/8e1b02b8ef2eefcb2ff3855531d7bc2ea71e1fb4
  Author: Jeff Cody <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    A include/qemu/crc32c.h
    M util/Makefile.objs
    A util/crc32c.c

  Log Message:
  -----------
  qemu: add castagnoli crc32c checksum algorithm

This adds the Castagnoli CRC32C algorithm, using the 0x11EDC6F41
polynomial.

This is extracted from the linux kernel cryptographic crc32.c module.

The algorithm is based on:

Castagnoli93: Guy Castagnoli and Stefan Braeuer and Martin Herrman
       "Optimization of Cyclic Redundancy-Check Codes with 24
        and 32 Parity Bits", IEEE Transactions on Communication,
        Volume 41, Number 6, June 1993

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 203cdba3bc6fb6022dbece90483fe03ed33bcffb
      
https://github.com/qemu/qemu/commit/203cdba3bc6fb6022dbece90483fe03ed33bcffb
  Author: Jeff Cody <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    A block/vhdx.h

  Log Message:
  -----------
  block: vhdx header for the QEMU support of VHDX images

This is based on Microsoft's VHDX specification:
    "VHDX Format Specification v0.95", published 4/12/2012
    https://www.microsoft.com/en-us/download/details.aspx?id=29681

These structures define the various header, metadata, and other
block structures defined in the VHDX specification.

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: e8d4e5ffdb015959551726a5700c19b5d772ada4
      
https://github.com/qemu/qemu/commit/e8d4e5ffdb015959551726a5700c19b5d772ada4
  Author: Jeff Cody <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/Makefile.objs
    A block/vhdx.c
    M block/vhdx.h

  Log Message:
  -----------
  block: initial VHDX driver support framework - supports open and probe

This is the initial block driver framework for VHDX image support
(i.e. Hyper-V image file formats), that supports opening VHDX files, and
parsing the headers.

This commit does not yet enable:
    - reading
    - writing
    - updating the header
    - differencing files (images with parents)
    - log replay / dirty logs (only clean images)

This is based on Microsoft's VHDX specification:
    "VHDX Format Specification v0.95", published 4/12/2012
    https://www.microsoft.com/en-us/download/details.aspx?id=29681

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 059e2fbbca484a68ac7fd99d1d76409294551586
      
https://github.com/qemu/qemu/commit/059e2fbbca484a68ac7fd99d1d76409294551586
  Author: Jeff Cody <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vhdx.c

  Log Message:
  -----------
  block: add read-only support to VHDX image format.

This adds in read-only support to the VHDX image format.  This supports
reads for fixed-size, and dynamic sized VHDX images.

Differencing files are still unsupported.

The image must be opened without BDRV_O_RDWR set, because we do not
yet update the headers.  I.e., pass 'readonly=on' in the drive image
options from the QEMU commandline.

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 8732901e1b8a5add02a2b747875202133413d565
      
https://github.com/qemu/qemu/commit/8732901e1b8a5add02a2b747875202133413d565
  Author: Kevin Wolf <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: Replace "undefined error" in qmp_block_resize

We have an errno value that can be displayed, so we should just do that.
An easy way to reproduce this case is to resize a raw image to a size
that is too large for the host file system.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 65f7472577f9409d285b0216fae76c7c3f03fc41
      
https://github.com/qemu/qemu/commit/65f7472577f9409d285b0216fae76c7c3f03fc41
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: named return code.

Internal routines in vmdk.c previously return -1 on error and 0 on
success. More return values are useful for future changes such as
zeroed-grain GTE. Change all the magic `return 0` and `return -1` to
macro names:

 * VMDK_OK      0
 * VMDK_ERROR   (-1)
 * VMDK_UNALLOC (-2)
 * VMDK_ZEROED  (-3)

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 14ead646fe7d5163c342ebd1e0aeb556ecf343a1
      
https://github.com/qemu/qemu/commit/14ead646fe7d5163c342ebd1e0aeb556ecf343a1
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: add support for “zeroed‐grain” GTE

Introduced support for zeroed-grain GTE, as specified in Virtual Disk
Format 5.0[1].

    Recent VMware hosted platform products support a new “zeroed‐grain”
    grain table entry (GTE). The zeroed‐grain GTE returns all zeros on
    read.  In other words, the zeroed‐grain GTE indicates that a grain
    in the child disk is zero‐filled but does not actually occupy space
    in storage.  A sparse extent with zeroed‐grain GTE has the following
    in its header:

     * SparseExtentHeader.version = 2
     * SparseExtentHeader.flags has bit 2 set

    Other than the new flag and the possibly zeroed‐grain GTE, version 2
    sparse extents are identical to version 1.  Also, a zeroed‐grain GTE
    has value 0x1 in the GT table.

[1] Virtual Disk Format 5.0, 
http://www.vmware.com/support/developer/vddk/vmdk_50_technote.pdf?src=vmdk
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 69e0b6dfa455924842bfcbfa810fde34899f1350
      
https://github.com/qemu/qemu/commit/69e0b6dfa455924842bfcbfa810fde34899f1350
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Add option to create zeroed-grain image

Add image create option "zeroed-grain" to enable zeroed-grain GTE
feature of vmdk sparse extents. When this option is on, header version
of newly created extent will be 2 and VMDK4_FLAG_ZERO_GRAIN flag bit
will be set.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 95b0aa4231dfc827ddc189138d6502cbca66d2b6
      
https://github.com/qemu/qemu/commit/95b0aa4231dfc827ddc189138d6502cbca66d2b6
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: change magic number to macro

Two hard coded flag bits are changed to macros.
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: e304e8e5a05bc54c71c5f6fc76abd47410e59857
      
https://github.com/qemu/qemu/commit/e304e8e5a05bc54c71c5f6fc76abd47410e59857
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: store fields of VmdkMetaData in cpu endian

Previously VmdkMetaData.offset is stored little endian while other
fields are cpu endian. This changes offset to cpu endian and convert
before writing to image.
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: cdeaf1f15909e2e8af38f45aea7cfa467a729c52
      
https://github.com/qemu/qemu/commit/cdeaf1f15909e2e8af38f45aea7cfa467a729c52
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: add bdrv_co_write_zeroes

Use special offset to write zeroes efficiently, when zeroed-grain GTE is
available. If zero-write an allocated cluster, cluster is leaked because
its offset pointer is overwritten by "0x1".

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 50522d969be315457e3296d8a32990b58a203902
      
https://github.com/qemu/qemu/commit/50522d969be315457e3296d8a32990b58a203902
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  qemu-iotests: Filter out vmdk creation options

Cover new image creation options for vmdk, so we can use '-o
zeroed_grain=XXX' and '-o subformat=XXX' to run the tests successfully.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: e1adb27a83f19799c454cead7bf930a0b3f2bb28
      
https://github.com/qemu/qemu/commit/e1adb27a83f19799c454cead7bf930a0b3f2bb28
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M nbd.c

  Log Message:
  -----------
  nbd: use g_slice_new() instead of a freelist

Use GLib's efficient slice allocator instead of open-coding the request
freelist.  This patch simplifies the NBDRequest code.

Now we qemu_blockalign() the req->data buffer each time but the next
patch switches from a fixed size buffer to a dynamic size anyway.

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


  Commit: 2d8214885942becb8f4371a66d6f8c9a9580108a
      
https://github.com/qemu/qemu/commit/2d8214885942becb8f4371a66d6f8c9a9580108a
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M include/block/nbd.h
    M nbd.c

  Log Message:
  -----------
  nbd: support large NBD requests

The Linux nbd driver recently increased the maximum supported request
size up to 32 MB:

  commit 078be02b80359a541928c899c2631f39628f56df
  Author: Michal Belczyk <address@hidden>
  Date:   Tue Apr 30 15:28:28 2013 -0700

      nbd: increase default and max request sizes

      Raise the default max request size for nbd to 128KB (from 127KB) to get it
      4KB aligned.  This patch also allows the max request size to be increased
      (via /sys/block/nbd<x>/queue/max_sectors_kb) to 32MB.

QEMU's 1 MB buffers are too small to handle these requests.

This patch allocates data buffers dynamically and allows up to 32 MB per
request.

Reported-by: Nick Thomas <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 86abefd61e23325162e59e5bfb8f0346eda62541
      
https://github.com/qemu/qemu/commit/86abefd61e23325162e59e5bfb8f0346eda62541
  Author: Fam Zheng <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  qemu-iotests: Filter out 'adapter_type'

Filter out vmdk creation option 'adapter_type' for vmdk. So that tests
with an explicit './check -o adapter_type=XXX' will not fail.

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


  Commit: c963530a5b3e3e0f7304841adfe84416d82f59f6
      
https://github.com/qemu/qemu/commit/c963530a5b3e3e0f7304841adfe84416d82f59f6
  Author: Amos Kong <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M net/net.c

  Log Message:
  -----------
  net: make network client name unique

assign_name() creates a name MODEL.NUM, where MODEL is the client's model,
and NUM is the number of MODELs that already exist.

Markus added NIC naming for non-VLAN clients in commit 53e51d85.
commit d33d93b2 incorrectly added a judgement of net-hub. It caused
net clients created with -netdev get same names.

eg:
 # qemu-upstream -device virtio-net-pci,netdev=h1 -netdev tap,id=h1 \
              -device virtio-net-pci,netdev=h2 -netdev tap,id=h2 ..
 (qemu) info network
 virtio-net-pci.0: 
index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:56
  \ h1: 
index=0,type=tap,ifname=tap0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown
 virtio-net-pci.0: 
index=0,type=nic,model=virtio-net-pci,macaddr=52:54:00:12:34:57
  \ h2: 
index=0,type=tap,ifname=tap1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown

This patch removed the check of nic-hub, and created unique names for
all net clients that have same model.

v2: update commitlog & comments

Signed-off-by: Amos Kong <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7873df408dd44eb92840b108211d5aa5db7db526
      
https://github.com/qemu/qemu/commit/7873df408dd44eb92840b108211d5aa5db7db526
  Author: Jason Wang <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M net/tap.c

  Log Message:
  -----------
  tap: properly initialize vhostfds

Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were
forgot, this will lead qemu to ignore all fds passed by management through
vhostfds, and tries to create vhost_net device itself. Fix by adding this check
also.

Reportyed-by: Michal Privoznik <address@hidden>
Cc: Michal Privoznik <address@hidden>
Cc: address@hidden
Signed-off-by: Jason Wang <address@hidden>
Reviewed-by: Michal Privoznik <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 9c7757290c6d80c2f5bde6fa71d2c9fe2b331c8c
      
https://github.com/qemu/qemu/commit/9c7757290c6d80c2f5bde6fa71d2c9fe2b331c8c
  Author: Kazuya Saito <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M kvm-all.c
    M trace-events

  Log Message:
  -----------
  kvm-all: add kvm_ioctl, kvm_vm_ioctl, kvm_vcpu_ioctl tracepoints

This patch adds tracepoints at ioctl to kvm. Tracing these ioctl is
useful for clarification whether the cause of troubles is qemu or kvm.

Signed-off-by: Kazuya Saito <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: b76ac80a5ca9f2e19405419172c0dcaf0370d4f5
      
https://github.com/qemu/qemu/commit/b76ac80a5ca9f2e19405419172c0dcaf0370d4f5
  Author: Kazuya Saito <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M kvm-all.c
    M trace-events

  Log Message:
  -----------
  kvm-all: add kvm_run_exit tracepoint

This patch enable us to know exit reason of KVM_RUN. It will help us
know where the trouble is caused.

Signed-off-by: Kazuya Saito <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 781e9545dbe54d2f0a530edbf48fd0ac1e77244c
      
https://github.com/qemu/qemu/commit/781e9545dbe54d2f0a530edbf48fd0ac1e77244c
  Author: Eiichi Tsukata <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M configure
    A scripts/tracetool/backend/ftrace.py
    M trace/Makefile.objs
    A trace/ftrace.c
    A trace/ftrace.h

  Log Message:
  -----------
  trace: Add ftrace tracing backend

This patch adds a ftrace tracing backend which sends trace event to
ftrace marker file. You can effectively compare qemu trace data and
kernel(especially, kvm.ko when using KVM) trace data.
The ftrace backend is restricted to Linux only.

To try out the ftrace backend:

 $ ./configure --trace-backend=ftrace
 $ make

if you use KVM, enable kvm events in ftrace:

 # sudo echo 1 > /sys/kernel/debug/tracing/events/kvm/enable

After running qemu by root user, you can get the trace:

 # cat /sys/kernel/debug/tracing/trace

Signed-off-by: Eiichi Tsukata <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: e64dd5efb2c6d522a3bc9d096cd49a4e53f0ae10
      
https://github.com/qemu/qemu/commit/e64dd5efb2c6d522a3bc9d096cd49a4e53f0ae10
  Author: Eiichi Tsukata <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M docs/tracing.txt

  Log Message:
  -----------
  trace: document ftrace backend

Add documentation of ftrace backend.

Signed-off-by: Eiichi Tsukata <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 25565e8595322b04902a09ebf877d80532f22fd1
      
https://github.com/qemu/qemu/commit/25565e8595322b04902a09ebf877d80532f22fd1
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M block/Makefile.objs
    A block/vhdx.c
    A block/vhdx.h
    M block/vmdk.c
    M blockdev.c
    M include/block/nbd.h
    A include/qemu/crc32c.h
    M nbd.c
    M tests/qemu-iotests/common.rc
    M util/Makefile.objs
    A util/crc32c.c

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/block' into staging

# By Fam Zheng (8) and others
# Via Stefan Hajnoczi
* stefanha/block:
  qemu-iotests: Filter out 'adapter_type'
  nbd: support large NBD requests
  nbd: use g_slice_new() instead of a freelist
  qemu-iotests: Filter out vmdk creation options
  vmdk: add bdrv_co_write_zeroes
  vmdk: store fields of VmdkMetaData in cpu endian
  vmdk: change magic number to macro
  vmdk: Add option to create zeroed-grain image
  vmdk: add support for “zeroed‐grain” GTE
  vmdk: named return code.
  blockdev: Replace "undefined error" in qmp_block_resize
  block: add read-only support to VHDX image format.
  block: initial VHDX driver support framework - supports open and probe
  block: vhdx header for the QEMU support of VHDX images
  qemu: add castagnoli crc32c checksum algorithm


  Commit: a612925b4184fa7aa37092db4fef816030640922
      
https://github.com/qemu/qemu/commit/a612925b4184fa7aa37092db4fef816030640922
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M net/net.c
    M net/tap.c

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/net' into staging

# By Amos Kong (1) and Jason Wang (1)
# Via Stefan Hajnoczi
* stefanha/net:
  tap: properly initialize vhostfds
  net: make network client name unique

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 743bddb4b35ceaaf6f95aea581a4130dcae6205a
      
https://github.com/qemu/qemu/commit/743bddb4b35ceaaf6f95aea581a4130dcae6205a
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-03 (Fri, 03 May 2013)

  Changed paths:
    M configure
    M docs/tracing.txt
    M kvm-all.c
    A scripts/tracetool/backend/ftrace.py
    M trace-events
    M trace/Makefile.objs
    A trace/ftrace.c
    A trace/ftrace.h

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/tracing' into staging

# By Eiichi Tsukata (2) and Kazuya Saito (2)
# Via Stefan Hajnoczi
* stefanha/tracing:
  trace: document ftrace backend
  trace: Add ftrace tracing backend
  kvm-all: add kvm_run_exit tracepoint
  kvm-all: add kvm_ioctl, kvm_vm_ioctl, kvm_vcpu_ioctl tracepoints

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/c9e53a4cf116...743bddb4b35c

reply via email to

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