All of lore.kernel.org
 help / color / mirror / Atom feed
From: boris.ostrovsky@oracle.com (Boris Ostrovsky)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 10/23] xen/biomerge: WORKAROUND always says the biovec are not mergeable
Date: Fri, 15 May 2015 11:54:59 -0400	[thread overview]
Message-ID: <555616D3.7060603@oracle.com> (raw)
In-Reply-To: <1431622863-28575-11-git-send-email-julien.grall@citrix.com>

On 05/14/2015 01:00 PM, Julien Grall wrote:
> When Linux is using 64K page granularity, every page will be slipt in
> multiple non-contiguous 4K MFN.
>
> I'm not sure how to handle efficiently the check to know whether we can
> merge 2 biovec with a such case. So for now, always says that biovec are
> not mergeable.
>
> Signed-off-by: Julien Grall <julien.grall@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: David Vrabel <david.vrabel@citrix.com>
> ---
>   drivers/xen/biomerge.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/xen/biomerge.c b/drivers/xen/biomerge.c
> index 0edb91c..20387c2 100644
> --- a/drivers/xen/biomerge.c
> +++ b/drivers/xen/biomerge.c
> @@ -9,6 +9,9 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
>   	unsigned long mfn1 = pfn_to_mfn(page_to_pfn(vec1->bv_page));
>   	unsigned long mfn2 = pfn_to_mfn(page_to_pfn(vec2->bv_page));
>   
> +	/* TODO: Implement it correctly */
> +	return 0;
> +
>   	return __BIOVEC_PHYS_MERGEABLE(vec1, vec2) &&
>   		((mfn1 == mfn2) || ((mfn1+1) == mfn2));
>   }


I think this is a bit too blunt.  Perhaps check first whether page sizes 
are different in the hypervisor and the guest?

(And I am not sure we need __BIOVEC_PHYS_MERGEABLE() test here as it is 
already checked by BIOVEC_PHYS_MERGEABLE() which appears to be the only 
user of xen_biovec_phys_mergeable())


-boris

WARNING: multiple messages have this Message-ID (diff)
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Julien Grall <julien.grall@citrix.com>, xen-devel@lists.xenproject.org
Cc: linux-arm-kernel@lists.infradead.org, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, linux-kernel@vger.kernel.org,
	tim@xen.org, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	David Vrabel <david.vrabel@citrix.com>
Subject: Re: [RFC 10/23] xen/biomerge: WORKAROUND always says the biovec are not mergeable
Date: Fri, 15 May 2015 11:54:59 -0400	[thread overview]
Message-ID: <555616D3.7060603@oracle.com> (raw)
In-Reply-To: <1431622863-28575-11-git-send-email-julien.grall@citrix.com>

On 05/14/2015 01:00 PM, Julien Grall wrote:
> When Linux is using 64K page granularity, every page will be slipt in
> multiple non-contiguous 4K MFN.
>
> I'm not sure how to handle efficiently the check to know whether we can
> merge 2 biovec with a such case. So for now, always says that biovec are
> not mergeable.
>
> Signed-off-by: Julien Grall <julien.grall@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: David Vrabel <david.vrabel@citrix.com>
> ---
>   drivers/xen/biomerge.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/xen/biomerge.c b/drivers/xen/biomerge.c
> index 0edb91c..20387c2 100644
> --- a/drivers/xen/biomerge.c
> +++ b/drivers/xen/biomerge.c
> @@ -9,6 +9,9 @@ bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
>   	unsigned long mfn1 = pfn_to_mfn(page_to_pfn(vec1->bv_page));
>   	unsigned long mfn2 = pfn_to_mfn(page_to_pfn(vec2->bv_page));
>   
> +	/* TODO: Implement it correctly */
> +	return 0;
> +
>   	return __BIOVEC_PHYS_MERGEABLE(vec1, vec2) &&
>   		((mfn1 == mfn2) || ((mfn1+1) == mfn2));
>   }


I think this is a bit too blunt.  Perhaps check first whether page sizes 
are different in the hypervisor and the guest?

(And I am not sure we need __BIOVEC_PHYS_MERGEABLE() test here as it is 
already checked by BIOVEC_PHYS_MERGEABLE() which appears to be the only 
user of xen_biovec_phys_mergeable())


-boris

  parent reply	other threads:[~2015-05-15 15:54 UTC|newest]

Thread overview: 200+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-14 17:00 [RFC 00/23] arm64: Add support for 64KB page granularity in Xen guest Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00 ` [RFC 01/23] xen: Include xen/page.h rather than asm/xen/page.h Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:50   ` David Vrabel
2015-05-19 13:50   ` [Xen-devel] " David Vrabel
2015-05-19 13:50     ` David Vrabel
2015-05-14 17:00 ` [RFC 02/23] xen/xenbus: client: Fix call of virt_to_mfn in xenbus_grant_ring Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:51   ` [Xen-devel] " David Vrabel
2015-05-19 13:51     ` David Vrabel
2015-05-19 14:12     ` Julien Grall
2015-05-19 14:12       ` Julien Grall
2015-05-19 14:12     ` Julien Grall
2015-05-19 13:51   ` David Vrabel
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00 ` [RFC 03/23] xen/grant-table: Remove unused macro SPP Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:52   ` [Xen-devel] " David Vrabel
2015-05-19 13:52     ` David Vrabel
2015-05-19 13:52   ` David Vrabel
2015-05-14 17:00 ` [RFC 04/23] block/xen-blkfront: Remove unused macro MAXIMUM_OUTSTANDING_BLOCK_REQS Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-20 14:36   ` Roger Pau Monné
2015-05-20 14:36     ` Roger Pau Monné
2015-05-20 14:36   ` Roger Pau Monné
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00 ` [RFC 05/23] block/xen-blkfront: Remove invalid comment Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-20 14:42   ` Roger Pau Monné
2015-05-20 14:42     ` Roger Pau Monné
2015-05-20 14:42     ` Roger Pau Monné
2015-05-14 17:00 ` [RFC 06/23] block/xen-blkback: s/nr_pages/nr_segs/ Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-20 14:54   ` Roger Pau Monné
2015-05-20 14:54   ` Roger Pau Monné
2015-05-20 14:54     ` Roger Pau Monné
2015-05-14 17:00 ` [RFC 07/23] net/xen-netfront: Correct printf format in xennet_get_responses Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:53   ` [Xen-devel] " David Vrabel
2015-05-19 13:53     ` David Vrabel
2015-05-19 13:53   ` David Vrabel
2015-05-14 17:00 ` [RFC 08/23] net/xen-netback: Remove unused code in xenvif_rx_action Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-15  0:26   ` Wei Liu
2015-05-15  0:26   ` Wei Liu
2015-05-15  0:26     ` Wei Liu
2015-05-14 17:00 ` [RFC 09/23] arm/xen: Drop duplicate define mfn_to_virt Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-06-23 13:25   ` Stefano Stabellini
2015-06-23 13:25     ` Stefano Stabellini
2015-06-23 13:53     ` [Xen-devel] " Julien Grall
2015-06-23 13:53       ` Julien Grall
2015-06-23 13:53     ` Julien Grall
2015-06-23 13:25   ` Stefano Stabellini
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00 ` [RFC 10/23] xen/biomerge: WORKAROUND always says the biovec are not mergeable Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-15 15:54   ` Boris Ostrovsky
2015-05-15 15:54   ` Boris Ostrovsky [this message]
2015-05-15 15:54     ` Boris Ostrovsky
2015-05-19 14:16     ` Julien Grall
2015-05-19 14:16     ` Julien Grall
2015-05-19 14:16       ` Julien Grall
2015-05-14 17:00 ` [RFC 11/23] xen: Add Xen specific page definition Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00 ` [RFC 12/23] xen: Extend page_to_mfn to take an offset in the page Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:57   ` [Xen-devel] " David Vrabel
2015-05-19 13:57     ` David Vrabel
2015-05-19 14:18     ` Julien Grall
2015-05-19 14:18     ` [Xen-devel] " Julien Grall
2015-05-19 14:18       ` Julien Grall
2015-05-19 13:57   ` David Vrabel
2015-05-14 17:00 ` [RFC 13/23] xen/xenbus: Use Xen page definition Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 13:59   ` [Xen-devel] " David Vrabel
2015-05-19 13:59     ` David Vrabel
2015-05-19 14:19     ` Julien Grall
2015-05-19 14:19     ` [Xen-devel] " Julien Grall
2015-05-19 14:19       ` Julien Grall
2015-05-19 13:59   ` David Vrabel
2015-05-14 17:00 ` [RFC 14/23] tty/hvc: xen: Use xen " Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00 ` [RFC 15/23] xen/balloon: Don't rely on the page granularity is the same for Xen and Linux Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 15:23   ` David Vrabel
2015-05-19 15:23   ` [Xen-devel] " David Vrabel
2015-05-19 15:23     ` David Vrabel
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00 ` [RFC 16/23] xen/events: fifo: Make it running on 64KB granularity Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 15:25   ` David Vrabel
2015-05-19 15:25   ` [Xen-devel] " David Vrabel
2015-05-19 15:25     ` David Vrabel
2015-05-14 17:00 ` [RFC 17/23] xen/grant-table: " Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-19 15:27   ` [Xen-devel] " David Vrabel
2015-05-19 15:27     ` David Vrabel
2015-05-19 15:27   ` David Vrabel
2015-05-14 17:00 ` [RFC 18/23] block/xen-blkfront: Make it running on 64KB page granularity Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00 ` [RFC 19/23] block/xen-blkback: " Julien Grall
2015-05-14 17:00   ` Julien Grall
2015-05-14 17:00 ` Julien Grall
2015-05-14 17:01 ` [RFC 20/23] net/xen-netfront: " Julien Grall
2015-05-14 17:01 ` Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-14 17:01 ` [RFC 21/23] net/xen-netback: " Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-15  2:35   ` Wei Liu
2015-05-15  2:35     ` Wei Liu
2015-05-15 12:35     ` Julien Grall
2015-05-15 12:35     ` [Xen-devel] " Julien Grall
2015-05-15 12:35       ` Julien Grall
2015-05-15 15:31       ` Wei Liu
2015-05-15 15:31         ` Wei Liu
2015-05-15 15:41         ` Ian Campbell
2015-05-15 15:41           ` Ian Campbell
2015-05-15 15:41         ` Ian Campbell
2015-05-18 12:11         ` Julien Grall
2015-05-18 12:11         ` [Xen-devel] " Julien Grall
2015-05-18 12:11           ` Julien Grall
2015-05-18 12:54           ` Wei Liu
2015-05-18 12:54           ` [Xen-devel] " Wei Liu
2015-05-18 12:54             ` Wei Liu
2015-05-19 22:56             ` Julien Grall
2015-05-19 22:56             ` [Xen-devel] " Julien Grall
2015-05-19 22:56               ` Julien Grall
2015-05-20  8:26               ` Wei Liu
2015-05-20  8:26               ` [Xen-devel] " Wei Liu
2015-05-20  8:26                 ` Wei Liu
2015-05-20 14:26                 ` Julien Grall
2015-05-20 14:26                 ` [Xen-devel] " Julien Grall
2015-05-20 14:26                   ` Julien Grall
2015-05-20 14:29               ` Julien Grall
2015-05-20 14:29               ` [Xen-devel] " Julien Grall
2015-05-20 14:29                 ` Julien Grall
2015-05-15 15:31       ` Wei Liu
2015-05-15  2:35   ` Wei Liu
2015-05-14 17:01 ` [RFC 22/23] xen/privcmd: Add support for Linux " Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-19 15:39   ` [Xen-devel] " David Vrabel
2015-05-19 15:39     ` David Vrabel
2015-06-18 17:05     ` Julien Grall
2015-06-18 17:05     ` [Xen-devel] " Julien Grall
2015-06-18 17:05       ` Julien Grall
2015-05-19 15:39   ` David Vrabel
2015-05-14 17:01 ` Julien Grall
2015-05-14 17:01 ` [RFC 23/23] arm/xen: Add support for " Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-05-14 17:01   ` Julien Grall
2015-06-23 14:19   ` Stefano Stabellini
2015-06-23 14:19     ` Stefano Stabellini
2015-06-23 14:37     ` Julien Grall
2015-06-23 14:37       ` Julien Grall
2015-06-23 14:49       ` Stefano Stabellini
2015-06-23 14:49         ` Stefano Stabellini
2015-06-23 15:02         ` [Xen-devel] " Julien Grall
2015-06-23 15:02           ` Julien Grall
2015-06-23 16:12           ` Stefano Stabellini
2015-06-23 16:12           ` [Xen-devel] " Stefano Stabellini
2015-06-23 16:12             ` Stefano Stabellini
2015-06-23 15:02         ` Julien Grall
2015-06-23 14:49       ` Stefano Stabellini
2015-06-23 14:37     ` Julien Grall
2015-06-23 14:19   ` Stefano Stabellini
2015-05-15 15:45 ` [Xen-devel] [RFC 00/23] arm64: Add support for 64KB page granularity in Xen guest David Vrabel
2015-05-15 15:45   ` David Vrabel
2015-05-15 15:51   ` Boris Ostrovsky
2015-05-15 15:51     ` Boris Ostrovsky
2015-05-15 15:51   ` Boris Ostrovsky
2015-05-18 12:23   ` [Xen-devel] " Julien Grall
2015-05-18 12:23     ` Julien Grall
2015-06-23 13:37     ` Stefano Stabellini
2015-06-23 13:37       ` Stefano Stabellini
2015-06-23 13:41       ` Stefano Stabellini
2015-06-23 13:41         ` Stefano Stabellini
2015-06-23 13:41       ` Stefano Stabellini
2015-06-23 13:37     ` Stefano Stabellini
2015-05-18 12:23   ` Julien Grall
2015-05-15 15:45 ` David Vrabel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=555616D3.7060603@oracle.com \
    --to=boris.ostrovsky@oracle.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.