On 13.07.2018 12:18, Janosch Frank wrote: > On 13.07.2018 11:00, David Hildenbrand wrote: >> On 13.07.2018 08:37, Janosch Frank wrote: >>> Let's allow huge pmd linking when enabled through the >>> KVM_CAP_S390_HPAGE_1M capability. Also we can now restrict gmap >>> invalidation and notification to the cases where the capability has >>> been activated and save some cycles when that's not the case. >>> >>> @@ -435,7 +435,7 @@ pmd_t pmdp_xchg_direct(struct mm_struct *mm, unsigned long addr, >>> pmd_t old; >>> >>> preempt_disable(); >>> - if (mm_has_pgste(mm)) { >>> + if (mm_has_pgste(mm) && mm->context.allow_gmap_hpage_1m) { >>> pmdp_clear_skeys(mm, pmdp, new); >>> pmdp_notify(mm, addr); >>> } >>> @@ -452,7 +452,7 @@ pmd_t pmdp_xchg_lazy(struct mm_struct *mm, unsigned long addr, >>> pmd_t old; >>> >>> preempt_disable(); >>> - if (mm_has_pgste(mm)) { >>> + if (mm_has_pgste(mm) && mm->context.allow_gmap_hpage_1m) { >>> pmdp_clear_skeys(mm, pmdp, new); >>> pmdp_notify(mm, addr); >>> } >>> >> >> You should probably change the order of the last two patches, so you >> really only expose the capability if support for huge pages is there. >> > > Which would mean I don't have mm->context.allow_gmap_hpage_1m in this > one and compilation breaks... > Well you can easily move introduction also to this patch. -- Thanks, David / dhildenb