<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/drivers/block/xen-blkback/common.h, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2015-07-01T18:53:46+00:00</updated>
<entry>
<title>Merge tag 'for-linus-4.2-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip</title>
<updated>2015-07-01T18:53:46+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-07-01T18:53:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7adf12b87f45a77d364464018fb8e9e1ac875152'/>
<id>urn:sha1:7adf12b87f45a77d364464018fb8e9e1ac875152</id>
<content type='text'>
Pull xen updates from David Vrabel:
 "Xen features and cleanups for 4.2-rc0:

   - add "make xenconfig" to assist in generating configs for Xen guests

   - preparatory cleanups necessary for supporting 64 KiB pages in ARM
     guests

   - automatically use hvc0 as the default console in ARM guests"

* tag 'for-linus-4.2-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  block/xen-blkback: s/nr_pages/nr_segs/
  block/xen-blkfront: Remove invalid comment
  block/xen-blkfront: Remove unused macro MAXIMUM_OUTSTANDING_BLOCK_REQS
  arm/xen: Drop duplicate define mfn_to_virt
  xen/grant-table: Remove unused macro SPP
  xen/xenbus: client: Fix call of virt_to_mfn in xenbus_grant_ring
  xen: Include xen/page.h rather than asm/xen/page.h
  kconfig: add xenconfig defconfig helper
  kconfig: clarify kvmconfig is for kvm
  xen/pcifront: Remove usage of struct timeval
  xen/tmem: use BUILD_BUG_ON() in favor of BUG_ON()
  hvc_xen: avoid uninitialized variable warning
  xenbus: avoid uninitialized variable warning
  xen/arm: allow console=hvc0 to be omitted for guests
  arm,arm64/xen: move Xen initialization earlier
  arm/xen: Correctly check if the event channel interrupt is present
</content>
</entry>
<entry>
<title>block/xen-blkback: s/nr_pages/nr_segs/</title>
<updated>2015-06-17T15:35:19+00:00</updated>
<author>
<name>Julien Grall</name>
<email>julien.grall@linaro.org</email>
</author>
<published>2015-06-17T14:28:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=6684fa1cdb1ebe804e9707f389255d461b2e95b0'/>
<id>urn:sha1:6684fa1cdb1ebe804e9707f389255d461b2e95b0</id>
<content type='text'>
Make the code less confusing to read now that Linux may not have the
same page size as Xen.

Signed-off-by: Julien Grall &lt;julien.grall@citrix.com&gt;
Acked-by: Roger Pau Monné &lt;roger.pau@citrix.com&gt;
Cc: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
</content>
</entry>
<entry>
<title>xen/block: add multi-page ring support</title>
<updated>2015-06-06T01:14:05+00:00</updated>
<author>
<name>Bob Liu</name>
<email>bob.liu@oracle.com</email>
</author>
<published>2015-06-03T05:40:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=86839c56dee28c315a4c19b7bfee450ccd84cd25'/>
<id>urn:sha1:86839c56dee28c315a4c19b7bfee450ccd84cd25</id>
<content type='text'>
Extend xen/block to support multi-page ring, so that more requests can be
issued by using more than one pages as the request ring between blkfront
and backend.
As a result, the performance can get improved significantly.

We got some impressive improvements on our highend iscsi storage cluster
backend. If using 64 pages as the ring, the IOPS increased about 15 times
for the throughput testing and above doubled for the latency testing.

The reason was the limit on outstanding requests is 32 if use only one-page
ring, but in our case the iscsi lun was spread across about 100 physical
drives, 32 was really not enough to keep them busy.

Changes in v2:
 - Rebased to 4.0-rc6.
 - Document on how multi-page ring feature working to linux io/blkif.h.

Changes in v3:
 - Remove changes to linux io/blkif.h and follow the protocol defined
   in io/blkif.h of XEN tree.
 - Rebased to 4.1-rc3

Changes in v4:
 - Turn to use 'ring-page-order' and 'max-ring-page-order'.
 - A few comments from Roger.

Changes in v5:
 - Clarify with 4k granularity to comment
 - Address more comments from Roger

Signed-off-by: Bob Liu &lt;bob.liu@oracle.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>drivers: xen-blkback: delay pending_req allocation to connect_ring</title>
<updated>2015-06-06T01:14:05+00:00</updated>
<author>
<name>Bob Liu</name>
<email>bob.liu@oracle.com</email>
</author>
<published>2015-06-03T05:40:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=69b91ede5cab843dcf345c28bd1f4b5a99dacd9b'/>
<id>urn:sha1:69b91ede5cab843dcf345c28bd1f4b5a99dacd9b</id>
<content type='text'>
This is a pre-patch for multi-page ring feature.
In connect_ring, we can know exactly how many pages are used for the shared
ring, delay pending_req allocation here so that we won't waste too much memory.

Signed-off-by: Bob Liu &lt;bob.liu@oracle.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>xen-blkback: define pr_fmt macro to avoid the duplication of DRV_PFX</title>
<updated>2015-04-07T14:32:43+00:00</updated>
<author>
<name>Tao Chen</name>
<email>boby.chen@huawei.com</email>
</author>
<published>2015-04-01T15:04:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=77387b82d1b2bada25a7b566ab7716408fedc5e9'/>
<id>urn:sha1:77387b82d1b2bada25a7b566ab7716408fedc5e9</id>
<content type='text'>
Define pr_fmt macro with {xen-blkback: } prefix, then remove all use
of DRV_PFX in the pr sentences. Replace all DPRINTK with pr sentences,
and get rid of DPRINTK macro. It will simplify the code.

And if the pr sentences miss a \n, add it in the end. If the DPRINTK
sentences have redundant \n, remove it. It will format the code.

These all make the readability of the code become better.

Signed-off-by: Tao Chen &lt;boby.chen@huawei.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Acked-by: Roger Pau Monné &lt;roger.pau@citrix.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-3.20/drivers' of git://git.kernel.dk/linux-block</title>
<updated>2015-02-12T22:30:53+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-02-12T22:30:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8494bcf5b7c4b2416687e233dd34d4c6b6fe5653'/>
<id>urn:sha1:8494bcf5b7c4b2416687e233dd34d4c6b6fe5653</id>
<content type='text'>
Pull block driver changes from Jens Axboe:
 "This contains:

   - The 4k/partition fixes for brd from Boaz/Matthew.

   - A few xen front/back block fixes from David Vrabel and Roger Pau
     Monne.

   - Floppy changes from Takashi, cleaning the device file creation.

   - Switching libata to use the new blk-mq tagging policy, removing
     code (and a suboptimal implementation) from libata.  This will
     throw you a merge conflict, since a bug in the original libata
     tagging code was fixed since this code was branched.  Trivial.
     From Shaohua.

   - Conversion of loop to blk-mq, from Ming Lei.

   - Cleanup of the io_schedule() handling in bsg from Peter Zijlstra.
     He claims it improves on unreadable code, which will cost him a
     beer.

   - Maintainer update or NDB, now handled by Markus Pargmann.

   - NVMe:
        - Optimization from me that avoids a kmalloc/kfree per IO for
          smaller (&lt;= 8KB) IO. This cuts about 1% of high IOPS CPU
          overhead.
        - Removal of (now) dead RCU code, a relic from before NVMe was
          converted to blk-mq"

* 'for-3.20/drivers' of git://git.kernel.dk/linux-block:
  xen-blkback: default to X86_32 ABI on x86
  xen-blkfront: fix accounting of reqs when migrating
  xen-blkback,xen-blkfront: add myself as maintainer
  block: Simplify bsg complete all
  floppy: Avoid manual call of device_create_file()
  NVMe: avoid kmalloc/kfree for smaller IO
  MAINTAINERS: Update NBD maintainer
  libata: make sata_sil24 use fifo tag allocator
  libata: move sas ata tag allocation to libata-scsi.c
  libata: use blk taging
  NVMe: within nvme_free_queues(), delete RCU sychro/deferred free
  null_blk: suppress invalid partition info
  brd: Request from fdisk 4k alignment
  brd: Fix all partitions BUGs
  axonram: Fix bug in direct_access
  loop: add blk-mq.h include
  block: loop: don't handle REQ_FUA explicitly
  block: loop: introduce lo_discard() and lo_req_flush()
  block: loop: say goodby to bio
  block: loop: improve performance via blk-mq
</content>
</entry>
<entry>
<title>xen-blkback: default to X86_32 ABI on x86</title>
<updated>2015-02-10T16:04:46+00:00</updated>
<author>
<name>David Vrabel</name>
<email>david.vrabel@citrix.com</email>
</author>
<published>2015-02-05T17:09:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=b042a3ca949053231950a1b15f31cccca9e305f3'/>
<id>urn:sha1:b042a3ca949053231950a1b15f31cccca9e305f3</id>
<content type='text'>
Prior to the existance of 64-bit backends using the X86_64 ABI,
frontends used the X86_32 ABI.  These old frontends do not specify the
ABI and when used with a 64-bit backend do not work.

On x86, default to the X86_32 ABI if one is not specified.  Backends
on ARM continue to default to their NATIVE ABI.

Signed-off-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
Acked-by: Roger Pau Monné &lt;roger.pau@citrix.com&gt;
</content>
</entry>
<entry>
<title>xen-blkback: safely unmap grants in case they are still in use</title>
<updated>2015-01-28T14:03:16+00:00</updated>
<author>
<name>Jennifer Herbert</name>
<email>jennifer.herbert@citrix.com</email>
</author>
<published>2015-01-05T16:49:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c43cf3ea838541ea9f066f4f1aa7b197cba6276e'/>
<id>urn:sha1:c43cf3ea838541ea9f066f4f1aa7b197cba6276e</id>
<content type='text'>
Use gnttab_unmap_refs_async() to wait until the mapped pages are no
longer in use before unmapping them.

This allows blkback to use network storage which may retain refs to
pages in queued skbs after the block I/O has completed.

Signed-off-by: Jennifer Herbert &lt;jennifer.herbert@citrix.com&gt;
Acked-by: Roger Pau Monné &lt;roger.pau@citrix.com&gt;
Acked-by: Jens Axboe &lt;axboe@kernel.de&gt;
Signed-off-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
</content>
</entry>
<entry>
<title>xen-blkback: defer freeing blkif to avoid blocking xenwatch</title>
<updated>2014-05-28T18:17:32+00:00</updated>
<author>
<name>Valentin Priescu</name>
<email>priescuv@amazon.com</email>
</author>
<published>2014-05-20T20:28:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=814d04e7dfc4a9cf7e36656afe2da5c0c08dde2b'/>
<id>urn:sha1:814d04e7dfc4a9cf7e36656afe2da5c0c08dde2b</id>
<content type='text'>
Currently xenwatch blocks in VBD disconnect, waiting for all pending I/O
requests to finish. If the VBD is attached to a hot-swappable disk, then
xenwatch can hang for a long period of time, stalling other watches.

 INFO: task xenwatch:39 blocked for more than 120 seconds.
 "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 ffff880057f01bd0 0000000000000246 ffff880057f01ac0 ffffffff810b0782
 ffff880057f01ad0 00000000000131c0 0000000000000004 ffff880057edb040
 ffff8800344c6080 0000000000000000 ffff880058c00ba0 ffff880057edb040
 Call Trace:
 [&lt;ffffffff810b0782&gt;] ? irq_to_desc+0x12/0x20
 [&lt;ffffffff8128f761&gt;] ? list_del+0x11/0x40
 [&lt;ffffffff8147a080&gt;] ? wait_for_common+0x60/0x160
 [&lt;ffffffff8147bcef&gt;] ? _raw_spin_lock_irqsave+0x2f/0x50
 [&lt;ffffffff8147bd49&gt;] ? _raw_spin_unlock_irqrestore+0x19/0x20
 [&lt;ffffffff8147a26a&gt;] schedule+0x3a/0x60
 [&lt;ffffffffa018fe6a&gt;] xen_blkif_disconnect+0x8a/0x100 [xen_blkback]
 [&lt;ffffffff81079f70&gt;] ? wake_up_bit+0x40/0x40
 [&lt;ffffffffa018ffce&gt;] xen_blkbk_remove+0xae/0x1e0 [xen_blkback]
 [&lt;ffffffff8130b254&gt;] xenbus_dev_remove+0x44/0x90
 [&lt;ffffffff81345cb7&gt;] __device_release_driver+0x77/0xd0
 [&lt;ffffffff81346488&gt;] device_release_driver+0x28/0x40
 [&lt;ffffffff813456e8&gt;] bus_remove_device+0x78/0xe0
 [&lt;ffffffff81342c9f&gt;] device_del+0x12f/0x1a0
 [&lt;ffffffff81342d2d&gt;] device_unregister+0x1d/0x60
 [&lt;ffffffffa0190826&gt;] frontend_changed+0xa6/0x4d0 [xen_blkback]
 [&lt;ffffffffa019c252&gt;] ? frontend_changed+0x192/0x650 [xen_netback]
 [&lt;ffffffff8130ae50&gt;] ? cmp_dev+0x60/0x60
 [&lt;ffffffff81344fe4&gt;] ? bus_for_each_dev+0x94/0xa0
 [&lt;ffffffff8130b06e&gt;] xenbus_otherend_changed+0xbe/0x120
 [&lt;ffffffff8130b4cb&gt;] frontend_changed+0xb/0x10
 [&lt;ffffffff81309c82&gt;] xenwatch_thread+0xf2/0x130
 [&lt;ffffffff81079f70&gt;] ? wake_up_bit+0x40/0x40
 [&lt;ffffffff81309b90&gt;] ? xenbus_directory+0x80/0x80
 [&lt;ffffffff810799d6&gt;] kthread+0x96/0xa0
 [&lt;ffffffff81485934&gt;] kernel_thread_helper+0x4/0x10
 [&lt;ffffffff814839f3&gt;] ? int_ret_from_sys_call+0x7/0x1b
 [&lt;ffffffff8147c17c&gt;] ? retint_restore_args+0x5/0x6
 [&lt;ffffffff81485930&gt;] ? gs_change+0x13/0x13

With this patch, when there is still pending I/O, the actual disconnect
is done by the last reference holder (last pending I/O request). In this
case, xenwatch doesn't block indefinitely.

Signed-off-by: Valentin Priescu &lt;priescuv@amazon.com&gt;
Reviewed-by: Steven Kady &lt;stevkady@amazon.com&gt;
Reviewed-by: Steven Noonan &lt;snoonan@amazon.com&gt;
Reviewed-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
</content>
</entry>
<entry>
<title>xen-blkback: init persistent_purge_work work_struct</title>
<updated>2014-02-12T03:34:03+00:00</updated>
<author>
<name>Roger Pau Monne</name>
<email>roger.pau@citrix.com</email>
</author>
<published>2014-02-12T03:34:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=abb97b8c502a270d59c0c2e1ecea78ad752372ee'/>
<id>urn:sha1:abb97b8c502a270d59c0c2e1ecea78ad752372ee</id>
<content type='text'>
Initialize persistent_purge_work work_struct on xen_blkif_alloc (and
remove the previous initialization done in purge_persistent_gnt). This
prevents flush_work from complaining even if purge_persistent_gnt has
not been used.

Signed-off-by: Roger Pau Monné &lt;roger.pau@citrix.com&gt;
Reviewed-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
Tested-by: Sander Eikelenboom &lt;linux@eikelenboom.it&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
</feed>
