qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 05fce2: qapi: add release designator to glust


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 05fce2: qapi: add release designator to gluster logfile op...
Date: Tue, 01 Nov 2016 08:30:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 05fce20d6d1d758021f6a3c7af03d116a2cb61a4
      
https://github.com/qemu/qemu/commit/05fce20d6d1d758021f6a3c7af03d116a2cb61a4
  Author: Jeff Cody <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M qapi/block-core.json

  Log Message:
  -----------
  qapi: add release designator to gluster logfile option

The "logfile" option to BlockdevOptionsGluster will not be in
QEMU until 2.8.  Update comment to indicate this.

Reported-by: Eric Blake <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>


  Commit: e38f643a1de9b5afc1d133b12bcfdf205bc27654
      
https://github.com/qemu/qemu/commit/e38f643a1de9b5afc1d133b12bcfdf205bc27654
  Author: Xiubo Li <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  rbd: make the code more readable

Make it a bit clearer and more readable.

Signed-off-by: Xiubo Li <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
CC: John Snow <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>


  Commit: d9b789745b88df367674e45c55df29e9c7de8d8a
      
https://github.com/qemu/qemu/commit/d9b789745b88df367674e45c55df29e9c7de8d8a
  Author: Jeff Cody <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  block: add gluster ifdef guard checks for SEEK_DATA/SEEK_HOLE support

Add checks to see if the system compiling QEMU has support for
SEEK_HOLE/SEEK_DATA.  If the system does not, we will flag that seek
data is unsupported in gluster.

Note: this is not a check on whether the gluster server itself supports
SEEK_DATA (that is already done during runtime), but rather if the
compilation environment supports SEEK_DATA.

Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>
Tested-by: Eric Blake <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 6349c15410361d3fe52c9beee309954d606f8ccd
      
https://github.com/qemu/qemu/commit/6349c15410361d3fe52c9beee309954d606f8ccd
  Author: Prasanna Kumar Kalever <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  block/gluster: memory usage: use one glfs instance per volume

Currently, for every drive accessed via gfapi we create a new glfs
instance (call glfs_new() followed by glfs_init()) which could consume
memory in few 100 MB's, from the table below it looks like for each
instance ~300 MB VSZ was consumed

Before:
-------
Disks   VSZ     RSS
1       1098728 187756
2       1430808 198656
3       1764932 199704
4       2084728 202684

This patch maintains a list of pre-opened glfs objects. On adding
a new drive belonging to the same gluster volume, we just reuse the
existing glfs object by updating its refcount.

With this approch we shrink up the unwanted memory consumption and
glfs_new/glfs_init calls for accessing a disk (file) if belongs to
same volume.

>From below table notice that the memory usage after adding a disk
(which will reuse the existing glfs object hence) is in negligible
compared to before.

After:
------
Disks   VSZ     RSS
1       1101964 185768
2       1109604 194920
3       1114012 196036
4       1114496 199868

Disks: number of -drive
VSZ: virtual memory size of the process in KiB
RSS: resident set size, the non-swapped physical memory (in kiloBytes)

VSZ and RSS are analyzed using 'ps aux' utility.

Signed-off-by: Prasanna Kumar Kalever <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 6f13acf97efb8aade2ff7e0444c15512f9e65812
      
https://github.com/qemu/qemu/commit/6f13acf97efb8aade2ff7e0444c15512f9e65812
  Author: Fam Zheng <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block: Turn on "unmap" in active commit

We already specified BDRV_O_UNMAP when opening images in 'qemu-img
commit', but didn't turn on the "unmap" in the active commit job. This
patch fixes that so that zeroed clusters in top image can be discarded
which is desired in the virt-sparsify use case, where a temporary
overlay is created and fstrim'ed before commiting back, to free space in
the original image.

This also enables it for block-commit.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: c56ac33b7a7bee960dd43f7744aaca47886c3960
      
https://github.com/qemu/qemu/commit/c56ac33b7a7bee960dd43f7744aaca47886c3960
  Author: Prasanna Kumar Kalever <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  block/gluster: improve defense over string to int conversion

using atoi() for converting string to int may be error prone in case if
string supplied in the argument is not a fold of numerical number,

This is not a bug because in the existing code,

static QemuOptsList runtime_tcp_opts = {
    .name = "gluster_tcp",
    .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
    .desc = {
  ...
  {
      .name = GLUSTER_OPT_PORT,
      .type = QEMU_OPT_NUMBER,
      .help = "port number ...",
  },
...
};

port type is QEMU_OPT_NUMBER, before we actually reaches atoi() port is already
defended by parse_option_number()

However It is a good practice to use function like parse_uint_full()
over atoi() to keep port self defended

Note: As now the port string to int conversion has its defence code set,
and also we understand that port argument is actually a string type,
in the follow up patch let's move port type from QEMU_OPT_NUMBER to
QEMU_OPT_STRING

[Jeff Cody: removed spurious parenthesis]

Signed-off-by: Prasanna Kumar Kalever <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 53d9837fb8906b8512143d5eaacc4d6a65b29cc6
      
https://github.com/qemu/qemu/commit/53d9837fb8906b8512143d5eaacc4d6a65b29cc6
  Author: Prasanna Kumar Kalever <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/gluster.c

  Log Message:
  -----------
  block/gluster: fix port type in the QAPI options list

After introduction of qapi schema in gluster block driver code, the port
type is now string as per InetSocketAddress

{ 'struct': 'InetSocketAddress',
  'data': {
    'host': 'str',
    'port': 'str',
    '*to': 'uint16',
    '*ipv4': 'bool',
    '*ipv6': 'bool' } }

but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port
to accept QEMU_OPT_STRING.

Suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Prasanna Kumar Kalever <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 559b935f8c5c3139c2e275651da719ffa425cc14
      
https://github.com/qemu/qemu/commit/559b935f8c5c3139c2e275651da719ffa425cc14
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M blockdev.c
    M blockjob.c
    M include/block/blockjob.h

  Log Message:
  -----------
  blockjobs: hide internal jobs from management API

If jobs are not created directly by the user, do not allow them to be
seen by the user/management utility. At the moment, 'internal' jobs are
those that do not have an ID. As of this patch it is impossible to
create such jobs.

Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: f81e0b453275f7b59a4018093eb93d2173790665
      
https://github.com/qemu/qemu/commit/f81e0b453275f7b59a4018093eb93d2173790665
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/backup.c
    M block/commit.c
    M block/mirror.c
    M block/stream.c
    M blockjob.c
    M include/block/blockjob.h
    M tests/test-blockjob-txn.c
    M tests/test-blockjob.c

  Log Message:
  -----------
  blockjobs: Allow creating internal jobs

Add the ability to create jobs without an ID.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 47970dfb0a611f6468a0ba44781b4610525d1af1
      
https://github.com/qemu/qemu/commit/47970dfb0a611f6468a0ba44781b4610525d1af1
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/backup.c
    M block/mirror.c
    M block/replication.c
    M blockdev.c
    M include/block/block_int.h
    M qemu-img.c

  Log Message:
  -----------
  Replication/Blockjobs: Create replication jobs as internal

Bubble up the internal interface to commit and backup jobs, then switch
replication tasks over to using this methodology.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 8254b6d9534ba6a7d078a717e777fefe75ec27b6
      
https://github.com/qemu/qemu/commit/8254b6d9534ba6a7d078a717e777fefe75ec27b6
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/commit.c
    M block/mirror.c
    M block/stream.c
    M block/trace-events
    M blockdev.c
    M blockjob.c
    M include/block/block_int.h
    M include/block/blockjob.h

  Log Message:
  -----------
  blockjob: centralize QMP event emissions

There's no reason to leave this to blockdev; we can do it in blockjobs
directly and get rid of an extra callback for most users.

All non-internal events, even those created outside of QMP, will
consistently emit events.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: 0df4ba58631772dd391314c1119863b574ebbaf9
      
https://github.com/qemu/qemu/commit/0df4ba58631772dd391314c1119863b574ebbaf9
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M blockdev.c
    M blockjob.c
    M include/block/blockjob.h

  Log Message:
  -----------
  Blockjobs: Internalize user_pause logic

BlockJobs will begin hiding their state in preparation for some
refactorings anyway, so let's internalize the user_pause mechanism
instead of leaving it to callers to correctly manage.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: c87621ea68e37b87dde82d1da80f9f8d2e13ffae
      
https://github.com/qemu/qemu/commit/c87621ea68e37b87dde82d1da80f9f8d2e13ffae
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/backup.c
    M block/commit.c
    M block/mirror.c
    M block/stream.c
    M blockjob.c
    M include/block/block.h
    M include/block/blockjob.h
    A include/block/blockjob_int.h
    M tests/test-blockjob-txn.c
    M tests/test-blockjob.c

  Log Message:
  -----------
  blockjobs: split interface into public/private, Part 1

To make it a little more obvious which functions are intended to be
public interface and which are intended to be for use only by jobs
themselves, split the interface into "public" and "private" files.

Convert blockjobs (e.g. block/backup) to using the private interface.
Leave blockdev and others on the public interface.

There are remaining uses of private state by qemu-img, and several
cases in blockdev.c and block/io.c where we grab job->blk for the
purposes of acquiring an AIOContext.

These will be corrected in future patches.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: d8996368106fbf133a6e52561a34f6d0f5080446
      
https://github.com/qemu/qemu/commit/d8996368106fbf133a6e52561a34f6d0f5080446
  Author: John Snow <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M include/block/blockjob_int.h

  Log Message:
  -----------
  blockjobs: fix documentation

(Trivial)

Fix wrong function names in documentation.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Message-id: address@hidden
Signed-off-by: Jeff Cody <address@hidden>


  Commit: c46ef897dbb75590af94b6e3dca6a9c5f9a1ea1e
      
https://github.com/qemu/qemu/commit/c46ef897dbb75590af94b6e3dca6a9c5f9a1ea1e
  Author: Peter Maydell <address@hidden>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M block/backup.c
    M block/commit.c
    M block/gluster.c
    M block/mirror.c
    M block/rbd.c
    M block/replication.c
    M block/stream.c
    M block/trace-events
    M blockdev.c
    M blockjob.c
    M include/block/block.h
    M include/block/block_int.h
    M include/block/blockjob.h
    A include/block/blockjob_int.h
    M qapi/block-core.json
    M qemu-img.c
    M tests/test-blockjob-txn.c
    M tests/test-blockjob.c

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

# gpg: Signature made Tue 01 Nov 2016 12:47:36 GMT
# gpg:                using RSA key 0xBDBE7B27C0DE3057
# gpg: Good signature from "Jeffrey Cody <address@hidden>"
# gpg:                 aka "Jeffrey Cody <address@hidden>"
# gpg:                 aka "Jeffrey Cody <address@hidden>"
# Primary key fingerprint: 9957 4B4D 3474 90E7 9D98  D624 BDBE 7B27 C0DE 3057

* remotes/cody/tags/block-pull-request:
  blockjobs: fix documentation
  blockjobs: split interface into public/private, Part 1
  Blockjobs: Internalize user_pause logic
  blockjob: centralize QMP event emissions
  Replication/Blockjobs: Create replication jobs as internal
  blockjobs: Allow creating internal jobs
  blockjobs: hide internal jobs from management API
  block/gluster: fix port type in the QAPI options list
  block/gluster: improve defense over string to int conversion
  block: Turn on "unmap" in active commit
  block/gluster: memory usage: use one glfs instance per volume
  block: add gluster ifdef guard checks for SEEK_DATA/SEEK_HOLE support
  rbd: make the code more readable
  qapi: add release designator to gluster logfile option

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


Compare: https://github.com/qemu/qemu/compare/39542105bbb1...c46ef897dbb7

reply via email to

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