]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Merge tag 'loongarch-kvm-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhu...
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 2 Jan 2024 18:16:29 +0000 (13:16 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 2 Jan 2024 18:16:29 +0000 (13:16 -0500)
LoongArch KVM changes for v6.8

1. Optimization for memslot hugepage checking.
2. Cleanup and fix some HW/SW timer issues.
3. Add LSX/LASX (128bit/256bit SIMD) support.

1  2 
arch/loongarch/include/asm/kvm_host.h
arch/x86/kvm/debugfs.c
arch/x86/kvm/x86.c
include/linux/pagemap.h
io_uring/io_uring.c
tools/testing/selftests/kvm/Makefile
virt/kvm/kvm_main.c

Simple merge
Simple merge
Simple merge
index bf2965b01b357f9de052c5da373de7acfbd958e5,06142ff7f9ce0ef0c600c3aa24f68b1bd5450bdb..2df35e65557d27c19fc3d87e865bc869b87bd18c
@@@ -203,8 -203,9 +203,10 @@@ enum mapping_flags 
        /* writeback related tags are not used */
        AS_NO_WRITEBACK_TAGS = 5,
        AS_LARGE_FOLIO_SUPPORT = 6,
-       AS_RELEASE_ALWAYS = 7,  /* Call ->release_folio(), even if no private data */
-       AS_UNMOVABLE    = 8,    /* The mapping cannot be moved, ever */
+       AS_RELEASE_ALWAYS,      /* Call ->release_folio(), even if no private data */
+       AS_STABLE_WRITES,       /* must wait for writeback before modifying
+                                  folio contents */
++      AS_UNMOVABLE,           /* The mapping cannot be moved, ever */
  };
  
  /**
@@@ -290,22 -291,21 +292,37 @@@ static inline void mapping_clear_releas
        clear_bit(AS_RELEASE_ALWAYS, &mapping->flags);
  }
  
+ static inline bool mapping_stable_writes(const struct address_space *mapping)
+ {
+       return test_bit(AS_STABLE_WRITES, &mapping->flags);
+ }
+ static inline void mapping_set_stable_writes(struct address_space *mapping)
+ {
+       set_bit(AS_STABLE_WRITES, &mapping->flags);
+ }
+ static inline void mapping_clear_stable_writes(struct address_space *mapping)
+ {
+       clear_bit(AS_STABLE_WRITES, &mapping->flags);
+ }
 +static inline void mapping_set_unmovable(struct address_space *mapping)
 +{
 +      /*
 +       * It's expected unmovable mappings are also unevictable. Compaction
 +       * migrate scanner (isolate_migratepages_block()) relies on this to
 +       * reduce page locking.
 +       */
 +      set_bit(AS_UNEVICTABLE, &mapping->flags);
 +      set_bit(AS_UNMOVABLE, &mapping->flags);
 +}
 +
 +static inline bool mapping_unmovable(struct address_space *mapping)
 +{
 +      return test_bit(AS_UNMOVABLE, &mapping->flags);
 +}
 +
  static inline gfp_t mapping_gfp_mask(struct address_space * mapping)
  {
        return mapping->gfp_mask;
Simple merge
Simple merge
Simple merge