Message ID | 20220321071945.918669-1-aik@ozlabs.ru |
---|---|
State | New |
Headers | show |
Series | [qemu] ppc/spapr/ddw: Add 2M pagesize | expand |
On 21/03/2022 18:19, Alexey Kardashevskiy wrote: > Recently the LoPAPR spec got a new 2MB pagesize to support in Dynamic DMA > Windows API (DDW), this adds the new flag. > > Linux supports it since > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=38727311871 > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> ping? > --- > PHYP added support for it in development builds as well. > --- > include/hw/ppc/spapr.h | 1 + > hw/ppc/spapr_rtas_ddw.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index f5c33dcc8616..14b01c3f5963 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -745,6 +745,7 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); > #define RTAS_DDW_PGSIZE_128M 0x20 > #define RTAS_DDW_PGSIZE_256M 0x40 > #define RTAS_DDW_PGSIZE_16G 0x80 > +#define RTAS_DDW_PGSIZE_2M 0x100 > > /* RTAS tokens */ > #define RTAS_TOKEN_BASE 0x2000 > diff --git a/hw/ppc/spapr_rtas_ddw.c b/hw/ppc/spapr_rtas_ddw.c > index 3e826e1308c4..13d339c807c1 100644 > --- a/hw/ppc/spapr_rtas_ddw.c > +++ b/hw/ppc/spapr_rtas_ddw.c > @@ -72,6 +72,7 @@ static uint32_t spapr_page_mask_to_query_mask(uint64_t page_mask) > const struct { int shift; uint32_t mask; } masks[] = { > { 12, RTAS_DDW_PGSIZE_4K }, > { 16, RTAS_DDW_PGSIZE_64K }, > + { 21, RTAS_DDW_PGSIZE_2M }, > { 24, RTAS_DDW_PGSIZE_16M }, > { 25, RTAS_DDW_PGSIZE_32M }, > { 26, RTAS_DDW_PGSIZE_64M },
On 3/21/22 04:19, Alexey Kardashevskiy wrote: > Recently the LoPAPR spec got a new 2MB pagesize to support in Dynamic DMA > Windows API (DDW), this adds the new flag. > > Linux supports it since > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=38727311871 > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > PHYP added support for it in development builds as well. > --- Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> > include/hw/ppc/spapr.h | 1 + > hw/ppc/spapr_rtas_ddw.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index f5c33dcc8616..14b01c3f5963 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -745,6 +745,7 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); > #define RTAS_DDW_PGSIZE_128M 0x20 > #define RTAS_DDW_PGSIZE_256M 0x40 > #define RTAS_DDW_PGSIZE_16G 0x80 > +#define RTAS_DDW_PGSIZE_2M 0x100 > > /* RTAS tokens */ > #define RTAS_TOKEN_BASE 0x2000 > diff --git a/hw/ppc/spapr_rtas_ddw.c b/hw/ppc/spapr_rtas_ddw.c > index 3e826e1308c4..13d339c807c1 100644 > --- a/hw/ppc/spapr_rtas_ddw.c > +++ b/hw/ppc/spapr_rtas_ddw.c > @@ -72,6 +72,7 @@ static uint32_t spapr_page_mask_to_query_mask(uint64_t page_mask) > const struct { int shift; uint32_t mask; } masks[] = { > { 12, RTAS_DDW_PGSIZE_4K }, > { 16, RTAS_DDW_PGSIZE_64K }, > + { 21, RTAS_DDW_PGSIZE_2M }, > { 24, RTAS_DDW_PGSIZE_16M }, > { 25, RTAS_DDW_PGSIZE_32M }, > { 26, RTAS_DDW_PGSIZE_64M },
Queued in gitlab.com/danielhb/qemu/tree/ppc-next. Thanks, Daniel On 3/21/22 04:19, Alexey Kardashevskiy wrote: > Recently the LoPAPR spec got a new 2MB pagesize to support in Dynamic DMA > Windows API (DDW), this adds the new flag. > > Linux supports it since > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=38727311871 > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > PHYP added support for it in development builds as well. > --- > include/hw/ppc/spapr.h | 1 + > hw/ppc/spapr_rtas_ddw.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index f5c33dcc8616..14b01c3f5963 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -745,6 +745,7 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); > #define RTAS_DDW_PGSIZE_128M 0x20 > #define RTAS_DDW_PGSIZE_256M 0x40 > #define RTAS_DDW_PGSIZE_16G 0x80 > +#define RTAS_DDW_PGSIZE_2M 0x100 > > /* RTAS tokens */ > #define RTAS_TOKEN_BASE 0x2000 > diff --git a/hw/ppc/spapr_rtas_ddw.c b/hw/ppc/spapr_rtas_ddw.c > index 3e826e1308c4..13d339c807c1 100644 > --- a/hw/ppc/spapr_rtas_ddw.c > +++ b/hw/ppc/spapr_rtas_ddw.c > @@ -72,6 +72,7 @@ static uint32_t spapr_page_mask_to_query_mask(uint64_t page_mask) > const struct { int shift; uint32_t mask; } masks[] = { > { 12, RTAS_DDW_PGSIZE_4K }, > { 16, RTAS_DDW_PGSIZE_64K }, > + { 21, RTAS_DDW_PGSIZE_2M }, > { 24, RTAS_DDW_PGSIZE_16M }, > { 25, RTAS_DDW_PGSIZE_32M }, > { 26, RTAS_DDW_PGSIZE_64M },
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index f5c33dcc8616..14b01c3f5963 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -745,6 +745,7 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); #define RTAS_DDW_PGSIZE_128M 0x20 #define RTAS_DDW_PGSIZE_256M 0x40 #define RTAS_DDW_PGSIZE_16G 0x80 +#define RTAS_DDW_PGSIZE_2M 0x100 /* RTAS tokens */ #define RTAS_TOKEN_BASE 0x2000 diff --git a/hw/ppc/spapr_rtas_ddw.c b/hw/ppc/spapr_rtas_ddw.c index 3e826e1308c4..13d339c807c1 100644 --- a/hw/ppc/spapr_rtas_ddw.c +++ b/hw/ppc/spapr_rtas_ddw.c @@ -72,6 +72,7 @@ static uint32_t spapr_page_mask_to_query_mask(uint64_t page_mask) const struct { int shift; uint32_t mask; } masks[] = { { 12, RTAS_DDW_PGSIZE_4K }, { 16, RTAS_DDW_PGSIZE_64K }, + { 21, RTAS_DDW_PGSIZE_2M }, { 24, RTAS_DDW_PGSIZE_16M }, { 25, RTAS_DDW_PGSIZE_32M }, { 26, RTAS_DDW_PGSIZE_64M },
Recently the LoPAPR spec got a new 2MB pagesize to support in Dynamic DMA Windows API (DDW), this adds the new flag. Linux supports it since https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=38727311871 Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- PHYP added support for it in development builds as well. --- include/hw/ppc/spapr.h | 1 + hw/ppc/spapr_rtas_ddw.c | 1 + 2 files changed, 2 insertions(+)