qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] nvme: 64kB page size fixes


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] nvme: 64kB page size fixes
Date: Tue, 02 Dec 2014 21:18:59 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0


On 27/11/2014 04:39, Anton Blanchard wrote:
> Initialise our maximum page size capability to 64kB and increase
> the page_size variable from 16 to 32 bits.
> 
> Signed-off-by: Anton Blanchard <address@hidden>
> --
> 
> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> index 1327658..aa1ed98 100644
> --- a/hw/block/nvme.c
> +++ b/hw/block/nvme.c
> @@ -811,6 +811,7 @@ static int nvme_init(PCIDevice *pci_dev)
>      NVME_CAP_SET_AMS(n->bar.cap, 1);
>      NVME_CAP_SET_TO(n->bar.cap, 0xf);
>      NVME_CAP_SET_CSS(n->bar.cap, 1);
> +    NVME_CAP_SET_MPSMAX(n->bar.cap, 4);
>  
>      n->bar.vs = 0x00010001;
>      n->bar.intmc = n->bar.intms = 0;
> diff --git a/hw/block/nvme.h b/hw/block/nvme.h
> index 993c511..b6ccb65 100644
> --- a/hw/block/nvme.h
> +++ b/hw/block/nvme.h
> @@ -688,7 +688,7 @@ typedef struct NvmeCtrl {
>      NvmeBar      bar;
>      BlockConf    conf;
>  
> -    uint16_t    page_size;
> +    uint32_t    page_size;
>      uint16_t    page_bits;
>      uint16_t    max_prp_ents;
>      uint16_t    cqe_size;
> 
> 

This should probably be a property of the device instead.  If you want
to change the default, you need to preserve a backwards-compatible value
for pre-2.3 machine types (-M pc-i440fx-2.2, -M pc-i440fx-2.1 etc.).

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]