lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1443609937-25278-1-git-send-email-julien.grall@citrix.com>
Date:	Wed, 30 Sep 2015 11:45:15 +0100
From:	Julien Grall <julien.grall@...rix.com>
To:	<xen-devel@...ts.xenproject.org>
CC:	<linux-arm-kernel@...ts.infradead.org>, <ian.campbell@...rix.com>,
	<stefano.stabellini@...citrix.com>, <linux-kernel@...r.kernel.org>,
	"Julien Grall" <julien.grall@...rix.com>,
	<david.vrabel@...rix.com>, <konrad.wilk@...cle.com>,
	<boris.ostrovsky@...cle.com>, <wei.liu2@...rix.com>,
	<roger.pau@...rix.com>
Subject: [PATCH v5 00/22] xen/arm64: Add support for 64KB page in Linux

Hi all,

ARM64 Linux is supporting both 4KB and 64KB page granularity. Although, Xen
hypercall interface and PV protocol are always based on 4KB page granularity.

Any attempt to boot a Linux guest with 64KB pages enabled will result to a
guest crash.

This series is a first attempt to allow those Linux running with the current
hypercall interface and PV protocol.

This solution has been chosen because we want to run Linux 64KB in released
Xen ARM version or/and platform using an old version of Linux DOM0.

There is room for improvement, such as support of 64KB grant, modification
of PV protocol to support different page size... They will be explored in a
separate patch series later.

TODO list:
    - Convert xenfb to 64KB
    - Support for multiple page ring support
    - Support for 64KB in gnttdev
    - Support of non-indirect grant with 64KB frontend (patch sent [1])
    - It may be possible to move some common define between
    netback/netfront and blkfront/blkback in an header

I've got most of the patches for the TODO items. I'm planning to send them as
a follow-up as it's not a requirement for a basic guests.

All patches has been built tested for ARM32, ARM64, x86. But I haven't tested
to run it on x86 as I don't have a box with Xen x86 running. Although, 99%
of the changes has been made in the PV drivers there should be no specific
issue. Although, I would be happy if someone give a try and see possible
regression for x86.

I know that Konrad as a test-suite for x86. Konrand, would it be possible to
give a run to for this series?

A branch based on the latest xentip/for-linus-4.4 can be found here:

git://xenbits.xen.org/people/julieng/linux-arm.git branch xen-64k-v5

There is no major changes in this series, only a couple of conflict during
rebase in netback and balloon drivers. For those pathces, I've keept the
reviewed-by/acked-by from Wei and Stefano. Let me know if it's not fine.

I also fold the swiotlb patch series into this series because it has been
reviewed by Stefano and I don't think there is much controversy (see patch #21
and #22).

Comments, suggestions are welcomed.

Sincerely yours,

[1] https://lkml.org/lkml/2015/9/11/567

Cc: david.vrabel@...rix.com
Cc: konrad.wilk@...cle.com
Cc: boris.ostrovsky@...cle.com
Cc: wei.liu2@...rix.com
Cc: roger.pau@...rix.com

Status of each patch:

A: Reviewed-by - Acked-by
M: Patch modified in this series
m: Minor changes in this series due to conflict during rebase
L: Missing Acked-by from a Linux maintainers (Boris, David or Konrad)

Julien Grall (22):
A       net/xen-netback: xenvif_gop_frag_copy: move GSO check out of the loop
A       arm/xen: Drop pte_mfn and mfn_pte
A   L   xen: Add Xen specific page definition
A       xen/grant: Introduce helpers to split a page into grant
A       xen/grant: Add helper gnttab_page_grant_foreign_access_ref_one
A       block/xen-blkfront: Split blkif_queue_request in 2
A       block/xen-blkfront: Store a page rather a pfn in the grant structure
A       block/xen-blkfront: split get_grant in 2
A   L   xen/biomerge: Don't allow biovec's to be merged when Linux is not
          using 4KB pages
A       xen/xenbus: Use Xen page definition
A   L   tty/hvc: xen: Use xen page definition
A m L   xen/balloon: Don't rely on the page granularity is the same for Xen
          and Linux
A       xen/events: fifo: Make it running on 64KB granularity
A       xen/grant-table: Make it running on 64KB granularity
A       block/xen-blkfront: Make it running on 64KB page granularity
A       block/xen-blkback: Make it running on 64KB page granularity
A       net/xen-netfront: Make it running on 64KB page granularity
A m     net/xen-netback: Make it running on 64KB page granularity
A       xen/privcmd: Add support for Linux 64KB page granularity
A       arm/xen: Add support for 64KB page granularity
A m L   xen/swiotlb: Pass addresses rather than frame numbers to
          xen_arch_need_swiotlb
A   L   xen/swiotlb: Add support for 64KB page granularity

 arch/arm/include/asm/xen/page-coherent.h |  26 +-
 arch/arm/include/asm/xen/page.h          |  22 +-
 arch/arm/xen/enlighten.c                 |   6 +-
 arch/arm/xen/mm.c                        |  39 ++-
 arch/arm/xen/p2m.c                       |   6 +-
 arch/x86/include/asm/xen/page.h          |   6 +-
 drivers/block/xen-blkback/blkback.c      |   5 +-
 drivers/block/xen-blkback/common.h       |  17 +-
 drivers/block/xen-blkback/xenbus.c       |   9 +-
 drivers/block/xen-blkfront.c             | 552 ++++++++++++++++++++-----------
 drivers/net/xen-netback/common.h         |  16 +-
 drivers/net/xen-netback/netback.c        | 167 ++++++----
 drivers/net/xen-netfront.c               | 122 +++++--
 drivers/tty/hvc/hvc_xen.c                |   4 +-
 drivers/xen/balloon.c                    |  69 +++-
 drivers/xen/biomerge.c                   |   8 +
 drivers/xen/events/events_base.c         |   2 +-
 drivers/xen/events/events_fifo.c         |   2 +-
 drivers/xen/grant-table.c                |  32 +-
 drivers/xen/privcmd.c                    |   8 +-
 drivers/xen/swiotlb-xen.c                |  43 ++-
 drivers/xen/xenbus/xenbus_client.c       |   6 +-
 drivers/xen/xenbus/xenbus_probe.c        |   3 +-
 drivers/xen/xlate_mmu.c                  | 124 ++++---
 include/xen/grant_table.h                |  51 +++
 include/xen/page.h                       |  27 +-
 26 files changed, 937 insertions(+), 435 deletions(-)

-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ