All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: "Roger Pau Monné" <roger.pau@citrix.com>,
	"Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
Cc: wei.liu2@citrix.com, linux-kernel@vger.kernel.org,
	Julien Grall <julien.grall@citrix.com>,
	david.vrabel@citrix.com, xen-devel@lists.xenproject.org,
	boris.ostrovsky@oracle.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 00/20] xen/arm64: Add support for 64KB page in Linux
Date: Tue, 6 Oct 2015 11:17:14 +0100	[thread overview]
Message-ID: <1444126634.5302.116.camel__45726.619862444$1444126708$gmane$org@citrix.com> (raw)
In-Reply-To: <56139428.4050402@citrix.com>

On Tue, 2015-10-06 at 11:28 +0200, Roger Pau Monné wrote:
> El 22/09/15 a les 12.59, Ian Campbell ha escrit:
> > On Mon, 2015-09-14 at 17:23 +0200, Roger Pau Monné wrote:
> > > I'm not saying that we shouldn't take those patches, I'm just saying
> > > that IMHO this is a workaround, and I would like to see a plan and
> > > somebody committed to have it fixed in a proper way, by introducing a
> > > 64KB PV block protocol.
> > 
> > In my view the basic unit of operation for all Xen interfaces (on x86
> > and
> > arm at least[0]) is 4K. The peer at either end of a PV protocol should
> > therefore be entitled to assume that at a minimum the other end
> > supports
> > operation in 4K mode (i.e. 4K is the baseline).
> > 
> > Operations in larger sizes (which would necessarily be multiples of 4K)
> > are
> > then an extension which is subject to a negotiation between the two
> > ends,
> > it doesn't really matter if those larger sizes arise because of the use
> > of
> > superpages or because the guest is internally using some larger basic
> > page
> > size (which ARM calls a "granule", and where 64K comes from here).
> > 
> > I think this line of reasoning applies just as strongly to the
> > hypercall
> > ABI as well BTW, they all use 4K as their basic unit, but might support
> > extensions to operation on multiples of that (negotiated either via a
> > specific error return and fallback or via the use of XENFEAT).
> 
> Yes, I completely agree that the current Xen interface is based on 4KB
> chunks. What I'm trying to say is that the approach taken, which is
> "let's not modify Xen" puts all the burden on the guest and it is going
> to hurt us in the long run.
> 
> Are we expecting all guests that want to use 64KB page to implement all
> the modifications that are needed? IMHO, those modifications are very
> far from trivial, and we are putting the bar for Xen guest support very
> high, and that is wrong. We are already struggling to have a decent set
> of PV drivers on guests different than Linux, and this is certainly not
> making things easier.

I think you are underestimating the impact/burden of not having a common
lowest common denominator interface which all front and backends should be
expected to provide in order to interact successfully with each other at a
basic level.

With your approach of requiring a 64KB guest to use native 64K interfaces
only you end up with guests containing front and backends which simply
cannot communicate at all because they do not have a common denominator or
a combinatorial explosion of guests supporting different sets of mutually
incompatible interfaces with no common ground.

I think that fragmentation is a far worse danger than of developers being
unwilling or unable to provide helpers which iterate over pages in whatever
size the guest happens to have (either larger granule or superpages) and
performing however many of whatever ops size has been negotiated with the
peer.

I'm also not convinced that Julien's patches are any less trivial than the
equivalent code to select the correct operations based on the kernels page
size without breaking them up, the developer still needs to be aware of the
4K vs large distinction if they want to support larger than 4K pages.

Developers can still choose to only support 4K pages in their OS, if they
feel this scheme of supporting larger pages is too intrusive or hard I
doubt they are going to want to implement a scheme based on an alternative
large-page protocol either.

> Do KVM guests also need such extensive set of modifications in order to
> run using 64KB pages? I know it's not fair to compare KVM and Xen in
> this regard, because the interfaces are very different, but that's what
> developers are going to look at.

I'm not sure that virtio cares about pages at all, just addresses which
have no particular alignment or granularity constraints, since they don't
have grant tables nor any requirement to mediate accesses to guest memory
by the host at any granularity at all.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2015-10-06 10:17 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-07 15:33 [PATCH v4 00/20] xen/arm64: Add support for 64KB page in Linux Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 01/20] net/xen-netback: xenvif_gop_frag_copy: move GSO check out of the loop Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 02/20] arm/xen: Drop pte_mfn and mfn_pte Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 03/20] xen: Add Xen specific page definition Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 04/20] xen/grant: Introduce helpers to split a page into grant Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 05/20] xen/grant: Add helper gnttab_page_grant_foreign_access_ref_one Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 06/20] block/xen-blkfront: Split blkif_queue_request in 2 Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 07/20] block/xen-blkfront: Store a page rather a pfn in the grant structure Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 08/20] block/xen-blkfront: split get_grant in 2 Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 09/20] xen/biomerge: Don't allow biovec's to be merged when Linux is not using 4KB pages Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 10/20] xen/xenbus: Use Xen page definition Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 11/20] tty/hvc: xen: Use xen " Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 12/20] xen/balloon: Don't rely on the page granularity is the same for Xen and Linux Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 16:39   ` Stefano Stabellini
2015-09-07 16:39   ` Stefano Stabellini
2015-09-07 16:39     ` Stefano Stabellini
2015-09-07 15:33 ` [PATCH v4 13/20] xen/events: fifo: Make it running on 64KB granularity Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 14/20] xen/grant-table: " Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 15/20] block/xen-blkfront: Make it running on 64KB page granularity Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 16/20] block/xen-blkback: " Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 17/20] net/xen-netfront: " Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 18/20] net/xen-netback: " Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 16:57   ` Wei Liu
2015-09-07 16:57     ` Wei Liu
2015-09-08 11:07     ` [Xen-devel] " Julien Grall
2015-09-08 11:07       ` Julien Grall
2015-09-08 11:09       ` Wei Liu
2015-09-08 11:09         ` Wei Liu
2015-09-08 11:09       ` Wei Liu
2015-09-08 11:07     ` Julien Grall
2015-09-07 16:57   ` Wei Liu
2015-09-07 15:33 ` [PATCH v4 19/20] xen/privcmd: Add support for Linux " Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-07 15:33 ` [PATCH v4 20/20] arm/xen: Add support for " Julien Grall
2015-09-07 15:33 ` Julien Grall
2015-09-07 15:33   ` Julien Grall
2015-09-11 19:39 ` [PATCH v4 00/20] xen/arm64: Add support for 64KB page in Linux Julien Grall
2015-09-11 19:39 ` [Xen-devel] " Julien Grall
2015-09-11 19:39   ` Julien Grall
2015-09-14  8:56 ` Roger Pau Monné
2015-09-14  8:56   ` Roger Pau Monné
2015-09-14 10:40   ` Julien Grall
2015-09-14 10:40   ` Julien Grall
2015-09-14 10:40     ` Julien Grall
2015-09-14 11:04     ` Roger Pau Monné
2015-09-14 11:04     ` Roger Pau Monné
2015-09-14 11:04       ` Roger Pau Monné
2015-09-14 11:21       ` Julien Grall
2015-09-14 11:21       ` Julien Grall
2015-09-14 11:21         ` Julien Grall
2015-09-14 12:08         ` Roger Pau Monné
2015-09-14 12:08         ` Roger Pau Monné
2015-09-14 12:08           ` Roger Pau Monné
2015-09-14 12:47           ` Julien Grall
2015-09-14 12:47           ` Julien Grall
2015-09-14 12:47             ` Julien Grall
2015-09-14 14:29             ` Roger Pau Monné
2015-09-14 14:29             ` Roger Pau Monné
2015-09-14 14:29               ` Roger Pau Monné
2015-09-14 14:46               ` Julien Grall
2015-09-14 14:46                 ` Julien Grall
2015-09-14 14:46               ` Julien Grall
2015-09-14 14:54               ` Stefano Stabellini
2015-09-14 14:54               ` Stefano Stabellini
2015-09-14 14:54                 ` Stefano Stabellini
2015-09-14 15:23                 ` Roger Pau Monné
2015-09-14 15:23                   ` Roger Pau Monné
2015-09-22 10:59                   ` Ian Campbell
2015-09-22 10:59                   ` Ian Campbell
2015-09-22 10:59                     ` Ian Campbell
2015-10-06  9:28                     ` Roger Pau Monné
2015-10-06  9:28                       ` Roger Pau Monné
2015-10-06 10:17                       ` Ian Campbell [this message]
2015-10-06 10:17                       ` Ian Campbell
2015-10-06 10:17                         ` Ian Campbell
2015-10-06 13:55                       ` Stefano Stabellini
2015-10-06 13:55                         ` Stefano Stabellini
2015-10-06 13:55                       ` Stefano Stabellini
2015-10-06  9:28                     ` Roger Pau Monné
2015-09-14 15:23                 ` Roger Pau Monné
2015-09-18 14:10           ` Julien Grall
2015-09-18 14:10           ` Julien Grall
2015-09-18 14:10             ` Julien Grall
2015-09-14 11:32       ` Arnd Bergmann
2015-09-14 11:32         ` Arnd Bergmann
2015-09-15 13:14         ` [Xen-devel] " David Vrabel
2015-09-15 13:14           ` David Vrabel
2015-09-15 13:24           ` Arnd Bergmann
2015-09-15 13:24             ` Arnd Bergmann
2015-09-15 13:24           ` Arnd Bergmann
2015-09-15 13:14         ` David Vrabel
2015-09-14 11:32       ` Arnd Bergmann
2015-09-14  8:56 ` Roger Pau Monné
2015-09-29 16:27 ` David Vrabel
2015-09-29 16:27 ` [Xen-devel] " David Vrabel
2015-09-29 16:27   ` David Vrabel
2015-09-29 16:33   ` Julien Grall
2015-09-29 16:33     ` Julien Grall
2015-09-29 16:36     ` David Vrabel
2015-09-29 16:36     ` [Xen-devel] " David Vrabel
2015-09-29 16:36       ` David Vrabel
2015-09-29 16:33   ` Julien Grall
  -- strict thread matches above, loose matches on Subject: below --
2015-09-07 15:33 Julien Grall

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='1444126634.5302.116.camel__45726.619862444$1444126708$gmane$org@citrix.com' \
    --to=ian.campbell@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=julien.grall@citrix.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roger.pau@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.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.