linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
	Janosch Frank <frankja@linux.vnet.ibm.com>,
	kvm@vger.kernel.org
Cc: schwidefsky@de.ibm.com, dominik.dingel@gmail.com,
	linux-s390@vger.kernel.org
Subject: Re: [RFC/PATCH v2 00/22] KVM/s390: Hugetlbfs enablement
Date: Thu, 21 Dec 2017 13:00:23 +0100	[thread overview]
Message-ID: <2ae18dbd-1be3-d575-5bc4-cc0d3675d77c@redhat.com> (raw)
In-Reply-To: <862443e7-f7c3-ea24-9093-43cb8529175c@de.ibm.com>

On 20.12.2017 13:23, Christian Borntraeger wrote:
> FWIW, this patch set has survived some testing on my side (with storage
> keys, with VSIE, with both), so I would say that after a respin with some 
> patch sqashing we give it some more days for the last reviews and then apply
> the whole thing via a topic branch via Martins s390 tree. I will merge
> this branch as well to solve the potential conflicts with 
> Davids patch ( s390x/mm: cleanup gmap_pte_op_walk() ) which is still
> pending in my tree
> 

"postcopy works every second try, seems to be QEMU or my setup".
Shouldn't we first understand why? gmap is a very sensible topic and we
should rather spend more time understanding everything. We don't want
guest escalation bugs.

I'd love to spend more time reviewing this, but it won't happen within
the next 2 weeks (Christmas holidays)

Thanks!

> Christian
> 
> 
> 
> 
> 
> On 12/13/2017 01:53 PM, Janosch Frank wrote:
>> Since the z10 s390 does support 1M pages, but whereas hugetlbfs
>> support was added quite fast, KVM always used standard 4k pages for
>> guest backings.
>>
>> This patchset adds full support for 1M huge page backings for s390
>> KVM guests. I.e. we also support VSIE (nested vms) for these guests
>> and are therefore able to run all combinations of backings for all
>> layers of guests.
>>
>> When running a VSIE guest in a huge page backed guest, we need to
>> split some huge pages to be able to set granular protection. This way
>> we avoid a prot/unprot cycle if prefixes and VSIE pages containing
>> level 3 gmap DAT tables share the same segment, as the prefix has to
>> be accessible at all times and the VSIE page has to be write
>> protected.
>>
>> TODO:
>> * Cleanups & Documentation
>> * Refactoring to get rid of a lot of indents
>> * Find a way to reduce or beautify bit checks on table entries
>> * Storage key support for split pages (will be a separate bugfix)
>> * Regression testing
>> * Testing large setups
>> * Testing multi level VSIE
>>
>> V2:
>> 	* Incorporated changes from David's cleanup
>> 	* Now flushing with IDTE_NODAT for protection transfers.
>> 	* Added RRBE huge page handling for g2 -> g3 skey emulation
>> 	* Added documentation for capability
>> 	* Renamed GMAP_ENTRY_* constants
>> 	* Added SEGMENT hardware bits constants
>> 	* Improved some patch descriptions
>> 	* General small improvements
>> 	* Introduced pte_from_pmd function
>>
>> Accomplished testing:
>> l2: KVM guest
>> l3: nested KVM guest
>>
>> * 1m l2 guests
>> * VSIE (l3) 4k and 1m guests on 1m l2
>> * 1m l2 -> l2 migration with 4k/1m l3 guests
>> * l3 -> l2 migration
>> * postcopy works every second try, seems to be QEMU or my setup
>>
>>
>> The initial prototype was started by Dominik Dingel. I had the
>> pleasure of adding the VSIE part, the protection transfers and the
>> optimizations. A huge thanks to Christian and Martin who review(ed)
>> and helped debugging/designing.
>>
>> Dominik Dingel (2):
>>   s390/mm: hugetlb pages within a gmap can not be freed
>>   s390/mm: clear huge page storage keys on enable_skey
>>
>> Janosch Frank (20):
>>   s390/mm: make gmap_protect_range more modular
>>   s390/mm: Abstract gmap notify bit setting
>>   s390/mm: add gmap PMD invalidation notification
>>   s390/mm: Add gmap pmd invalidation and clearing
>>   s390/mm: Introduce gmap_pmdp_xchg
>>   RFC: s390/mm: Transfer guest pmd protection to host
>>   s390/mm: Add huge page dirty sync support
>>   s390/mm: Add huge pmd storage key handling
>>   s390/mm: Remove superfluous parameter
>>   s390/mm: Add gmap_protect_large read protection support
>>   s390/mm: Make gmap_read_table EDAT1 compatible
>>   s390/mm: Make protect_rmap EDAT1 compatible
>>   s390/mm: GMAP read table extensions
>>   s390/mm: Add shadow segment code
>>   s390/mm: Add VSIE reverse fake case
>>   s390/mm: Remove gmap_pte_op_walk
>>   s390/mm: Split huge pages if granular protection is needed
>>   s390/mm: Enable gmap huge pmd support
>>   KVM: s390: Add KVM HPAGE capability
>>   RFC: s390/mm: Add gmap lock classes
>>
>>  Documentation/virtual/kvm/api.txt |   10 +
>>  arch/s390/include/asm/gmap.h      |   39 +-
>>  arch/s390/include/asm/pgtable.h   |   18 +-
>>  arch/s390/kvm/gaccess.c           |   64 +-
>>  arch/s390/kvm/kvm-s390.c          |   19 +-
>>  arch/s390/mm/fault.c              |   10 +-
>>  arch/s390/mm/gmap.c               | 1275 +++++++++++++++++++++++++++++++++----
>>  arch/s390/mm/pageattr.c           |    6 +-
>>  arch/s390/mm/pgtable.c            |  176 ++++-
>>  include/uapi/linux/kvm.h          |    1 +
>>  10 files changed, 1445 insertions(+), 173 deletions(-)
>>
> 


-- 

Thanks,

David / dhildenb

  reply	other threads:[~2017-12-21 12:00 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-13 12:53 [RFC/PATCH v2 00/22] KVM/s390: Hugetlbfs enablement Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 01/22] s390/mm: make gmap_protect_range more modular Janosch Frank
2018-01-22 11:33   ` David Hildenbrand
2018-01-22 12:31     ` Janosch Frank
2018-01-22 12:50       ` David Hildenbrand
2018-01-22 13:02         ` Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 02/22] s390/mm: Abstract gmap notify bit setting Janosch Frank
2018-01-22 11:34   ` David Hildenbrand
2017-12-13 12:53 ` [RFC/PATCH v2 03/22] s390/mm: add gmap PMD invalidation notification Janosch Frank
2017-12-21  9:24   ` Janosch Frank
2018-01-22 11:46   ` David Hildenbrand
2018-01-22 13:13     ` Janosch Frank
2018-01-22 13:29       ` David Hildenbrand
2018-01-22 14:04         ` Janosch Frank
2018-01-22 11:56   ` David Hildenbrand
2018-01-22 12:09     ` Janosch Frank
2018-01-22 12:12       ` David Hildenbrand
2017-12-13 12:53 ` [RFC/PATCH v2 04/22] s390/mm: Add gmap pmd invalidation and clearing Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 05/22] s390/mm: hugetlb pages within a gmap can not be freed Janosch Frank
2018-01-24 13:45   ` David Hildenbrand
2018-01-24 13:56     ` Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 06/22] s390/mm: Introduce gmap_pmdp_xchg Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 07/22] RFC: s390/mm: Transfer guest pmd protection to host Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 08/22] s390/mm: Add huge page dirty sync support Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 09/22] s390/mm: clear huge page storage keys on enable_skey Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 10/22] s390/mm: Add huge pmd storage key handling Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 11/22] s390/mm: Remove superfluous parameter Janosch Frank
2017-12-21  9:22   ` Janosch Frank
2018-01-16 12:39     ` Janosch Frank
2018-01-16 13:11   ` David Hildenbrand
2018-01-22 13:14   ` Christian Borntraeger
2018-01-22 13:24     ` Martin Schwidefsky
2017-12-13 12:53 ` [RFC/PATCH v2 12/22] s390/mm: Add gmap_protect_large read protection support Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 13/22] s390/mm: Make gmap_read_table EDAT1 compatible Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 14/22] s390/mm: Make protect_rmap " Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 15/22] s390/mm: GMAP read table extensions Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 16/22] s390/mm: Add shadow segment code Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 17/22] s390/mm: Add VSIE reverse fake case Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 18/22] s390/mm: Remove gmap_pte_op_walk Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 19/22] s390/mm: Split huge pages if granular protection is needed Janosch Frank
2018-01-25  7:16   ` Janosch Frank
2018-01-25 14:39     ` David Hildenbrand
2018-01-25 14:55       ` Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 20/22] s390/mm: Enable gmap huge pmd support Janosch Frank
2017-12-13 12:53 ` [RFC/PATCH v2 21/22] KVM: s390: Add KVM HPAGE capability Janosch Frank
2017-12-20 13:02   ` Cornelia Huck
2017-12-20 13:17     ` Janosch Frank
2017-12-20 13:21       ` Cornelia Huck
2017-12-13 12:53 ` [RFC/PATCH v2 22/22] RFC: s390/mm: Add gmap lock classes Janosch Frank
2017-12-20 12:24   ` Christian Borntraeger
2017-12-20 12:36     ` Janosch Frank
2017-12-20 12:23 ` [RFC/PATCH v2 00/22] KVM/s390: Hugetlbfs enablement Christian Borntraeger
2017-12-21 12:00   ` David Hildenbrand [this message]
2017-12-22  9:08     ` Christian Borntraeger
2018-01-02  0:02       ` Janosch Frank
2018-01-22 11:23 ` David Hildenbrand
2018-01-22 11:56   ` Christian Borntraeger
2018-01-23 21:15 ` David Hildenbrand
2018-01-24  9:01   ` Janosch Frank
2018-01-24  9:14     ` David Hildenbrand
2018-01-25 15:33       ` [PATCH 0/2] Huge page pte protection Janosch Frank
2018-01-25 15:33         ` [PATCH 1/2] mm: s390: Only notify on 4k pages Janosch Frank
2018-01-25 16:04           ` David Hildenbrand
2018-01-26 10:31             ` Janosch Frank
2018-01-25 15:33         ` [PATCH 2/2] mm: s390: Rename gmap_pte_op_fixup Janosch Frank
2018-01-26 10:34       ` [PATCH v2] mm: s390: Only notify on 4k pages Janosch Frank
2018-01-30 10:19         ` David Hildenbrand

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=2ae18dbd-1be3-d575-5bc4-cc0d3675d77c@redhat.com \
    --to=david@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=dominik.dingel@gmail.com \
    --cc=frankja@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=schwidefsky@de.ibm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).