1. 18 10月, 2011 1 次提交
  2. 15 10月, 2011 1 次提交
  3. 13 10月, 2011 5 次提交
  4. 29 9月, 2011 1 次提交
    • S
      xen: modify kernel mappings corresponding to granted pages · 0930bba6
      Stefano Stabellini 提交于
      If we want to use granted pages for AIO, changing the mappings of a user
      vma and the corresponding p2m is not enough, we also need to update the
      kernel mappings accordingly.
      Currently this is only needed for pages that are created for user usages
      through /dev/xen/gntdev. As in, pages that have been in use by the
      kernel and use the P2M will not need this special mapping.
      However there are no guarantees that in the future the kernel won't
      start accessing pages through the 1:1 even for internal usage.
      
      In order to avoid the complexity of dealing with highmem, we allocated
      the pages lowmem.
      We issue a HYPERVISOR_grant_table_op right away in
      m2p_add_override and we remove the mappings using another
      HYPERVISOR_grant_table_op in m2p_remove_override.
      Considering that m2p_add_override and m2p_remove_override are called
      once per page we use multicalls and hypercall batching.
      
      Use the kmap_op pointer directly as argument to do the mapping as it is
      guaranteed to be present up until the unmapping is done.
      Before issuing any unmapping multicalls, we need to make sure that the
      mapping has already being done, because we need the kmap->handle to be
      set correctly.
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      [v1: Removed GRANT_FRAME_BIT usage]
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      0930bba6
  5. 01 7月, 2011 2 次提交
  6. 01 6月, 2011 1 次提交
  7. 18 5月, 2011 1 次提交
  8. 13 5月, 2011 9 次提交
  9. 12 5月, 2011 1 次提交
  10. 06 5月, 2011 3 次提交
  11. 28 4月, 2011 1 次提交
  12. 27 4月, 2011 2 次提交
    • K
      xen/blkback: Stick REQ_SYNC on WRITEs to deal with CFQ I/O scheduler. · 013c3ca1
      Konrad Rzeszutek Wilk 提交于
      If one runs a simple fio request with random read/write with a
      20%/80% ratio, the numbers are incredibly bad when using the CFQ scheduler.
      
      IOmeter       |       |      |          |
      64K, randrw   |  NOOP | CFQ  | deadline |
      randrwmix=80  |       |      |          |
      --------------+-------+------+----------+
      blkback       |103/27 |32/10 | 102/27   |
      --------------+-------+------+----------+
      QEMU qdisk    |103/27 |102/27| 102/27   |
      
      The problem as explained by Vivek Goyal was:
      
      ".. that difference is that sync vs async requests. In the case of
      a kernel thread submitting IO, [..] all the WRITES might be being
      considered as async and will go in a different queue. If you mix those
      with some READS, they are always sync and will go in differnet queue.
      In presence of sync queue, CFQ will idle and choke up WRITES in
      an attempt to improve latencies of READs.
      
      In case of AIO [note: this is what QEMU qdisk is doing] , [..]
      it is direct IO and both READS and WRITES will be considered SYNC
      and will go in a single queue and no choking of WRITES will take place."
      
      The solution is quite simple, tack on REQ_SYNC (which is
      what the WRITE_ODIRECT macro points to) and the numbers go
      back up.
      
      Suggested-by: Vivek Goyal <vgoyal@redhat.com
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      013c3ca1
    • K
      xen/blkback: Move the plugging/unplugging to a higher level. · 97961ef4
      Konrad Rzeszutek Wilk 提交于
      We used to the plug/unplug on the submit_bio. But that means
      if within a stream of WRITE, WRITE, WRITE,...,WRITE we have
      one READ, it could stall the pipeline (as the 'submio_bio'
      could trigger the unplug_fnc to be called and stall/sync
      when doing the READ). Instead we want to move the unplugging
      when the whole (or as a much as possible) ring buffer has been
      processed. This also eliminates us doing plug/unplug for
      each request.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      97961ef4
  13. 20 4月, 2011 3 次提交
  14. 19 4月, 2011 3 次提交
  15. 18 4月, 2011 1 次提交
  16. 15 4月, 2011 5 次提交