[PATCH] hw/block/nvme: Simplify timestamp sum

Philippe Mathieu-Daudé posted 1 patch 3 years, 7 months ago
Test docker-quick@centos7 failed
Test docker-mingw@fedora failed
Test checkpatch failed
Test FreeBSD failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201002075716.1657849-1-philmd@redhat.com
hw/block/nvme.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
[PATCH] hw/block/nvme: Simplify timestamp sum
Posted by Philippe Mathieu-Daudé 3 years, 7 months ago
As the 'timestamp' variable is declared as a 48-bit bitfield,
we do not need to wrap the sum result.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/block/nvme.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 63078f6009..44fa5b9076 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -1280,12 +1280,7 @@ static inline uint64_t nvme_get_timestamp(const NvmeCtrl *n)
 
     union nvme_timestamp ts;
     ts.all = 0;
-
-    /*
-     * If the sum of the Timestamp value set by the host and the elapsed
-     * time exceeds 2^48, the value returned should be reduced modulo 2^48.
-     */
-    ts.timestamp = (n->host_timestamp + elapsed_time) & 0xffffffffffff;
+    ts.timestamp = n->host_timestamp + elapsed_time;
 
     /* If the host timestamp is non-zero, set the timestamp origin */
     ts.origin = n->host_timestamp ? 0x01 : 0x00;
-- 
2.26.2

Re: [PATCH] hw/block/nvme: Simplify timestamp sum
Posted by Klaus Jensen 3 years, 7 months ago
On Oct  2 09:57, Philippe Mathieu-Daudé wrote:
> As the 'timestamp' variable is declared as a 48-bit bitfield,
> we do not need to wrap the sum result.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Reviewed-by: Klaus Jensen <k.jensen@samsung.com>

> ---
>  hw/block/nvme.c | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> index 63078f6009..44fa5b9076 100644
> --- a/hw/block/nvme.c
> +++ b/hw/block/nvme.c
> @@ -1280,12 +1280,7 @@ static inline uint64_t nvme_get_timestamp(const NvmeCtrl *n)
>  
>      union nvme_timestamp ts;
>      ts.all = 0;
> -
> -    /*
> -     * If the sum of the Timestamp value set by the host and the elapsed
> -     * time exceeds 2^48, the value returned should be reduced modulo 2^48.
> -     */
> -    ts.timestamp = (n->host_timestamp + elapsed_time) & 0xffffffffffff;
> +    ts.timestamp = n->host_timestamp + elapsed_time;
>  
>      /* If the host timestamp is non-zero, set the timestamp origin */
>      ts.origin = n->host_timestamp ? 0x01 : 0x00;
> -- 
> 2.26.2
> 
> 

-- 
One of us - No more doubt, silence or taboo about mental illness.
Re: [PATCH] hw/block/nvme: Simplify timestamp sum
Posted by Laurent Vivier 3 years, 6 months ago
Le 02/10/2020 à 09:57, Philippe Mathieu-Daudé a écrit :
> As the 'timestamp' variable is declared as a 48-bit bitfield,
> we do not need to wrap the sum result.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/block/nvme.c | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> index 63078f6009..44fa5b9076 100644
> --- a/hw/block/nvme.c
> +++ b/hw/block/nvme.c
> @@ -1280,12 +1280,7 @@ static inline uint64_t nvme_get_timestamp(const NvmeCtrl *n)
>  
>      union nvme_timestamp ts;
>      ts.all = 0;
> -
> -    /*
> -     * If the sum of the Timestamp value set by the host and the elapsed
> -     * time exceeds 2^48, the value returned should be reduced modulo 2^48.
> -     */
> -    ts.timestamp = (n->host_timestamp + elapsed_time) & 0xffffffffffff;
> +    ts.timestamp = n->host_timestamp + elapsed_time;
>  
>      /* If the host timestamp is non-zero, set the timestamp origin */
>      ts.origin = n->host_timestamp ? 0x01 : 0x00;
> 

Applied to my trivial-patches branch.

Thanks,
Laurent