* Re: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
2017-03-03 11:32 [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc Daniel P. Berrange
@ 2017-03-03 11:38 ` no-reply
2017-03-03 16:10 ` Andrea Arcangeli
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: no-reply @ 2017-03-03 11:38 UTC (permalink / raw)
To: berrange
Cc: famz, qemu-devel, aarcange, mprivozn, jitendra.kolhe, stefanha,
pbonzini
Hi,
This series seems to have some coding style problems. See output below for
more information:
Message-id: 20170303113255.28262-1-berrange@redhat.com
Type: series
Subject: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
# Useful git options
git config --local diff.renamelimit 0
git config --local diff.renames True
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
4210940 os: don't corrupt pre-existing memory-backend data with prealloc
=== OUTPUT BEGIN ===
Checking PATCH 1/1: os: don't corrupt pre-existing memory-backend data with prealloc...
ERROR: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt
#43: FILE: util/oslib-posix.c:371:
+ *(volatile char *)page = *page;
total: 1 errors, 0 warnings, 21 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
2017-03-03 11:32 [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc Daniel P. Berrange
2017-03-03 11:38 ` no-reply
@ 2017-03-03 16:10 ` Andrea Arcangeli
2017-03-10 4:27 ` Stefan Hajnoczi
2017-03-10 4:30 ` Stefan Hajnoczi
3 siblings, 0 replies; 6+ messages in thread
From: Andrea Arcangeli @ 2017-03-03 16:10 UTC (permalink / raw)
To: Daniel P. Berrange
Cc: qemu-devel, Michal Privoznik, Jitendra Kolhe, Stefan Hajnoczi,
Paolo Bonzini, Eric Blake
On Fri, Mar 03, 2017 at 11:32:55AM +0000, Daniel P. Berrange wrote:
> When using a memory-backend object with prealloc turned on, QEMU
> will memset() the first byte in every memory page to zero. While
> this might have been acceptable for memory backends associated
> with RAM, this corrupts application data for NVDIMMs.
>
> Instead of setting every page to zero, read the current byte
> value and then just write that same value back, so we are not
> corrupting the original data. Directly write the value instead
> of memset()ing it, since there's no benefit to memset for a
> single byte write.
>
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>
> Changed in v3:
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Thanks,
Andrea
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
2017-03-03 11:32 [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc Daniel P. Berrange
2017-03-03 11:38 ` no-reply
2017-03-03 16:10 ` Andrea Arcangeli
@ 2017-03-10 4:27 ` Stefan Hajnoczi
2017-03-10 4:30 ` Stefan Hajnoczi
3 siblings, 0 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2017-03-10 4:27 UTC (permalink / raw)
To: Daniel P. Berrange
Cc: qemu-devel, Andrea Arcangeli, Michal Privoznik, Jitendra Kolhe,
Stefan Hajnoczi, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 960 bytes --]
On Fri, Mar 03, 2017 at 11:32:55AM +0000, Daniel P. Berrange wrote:
> When using a memory-backend object with prealloc turned on, QEMU
> will memset() the first byte in every memory page to zero. While
> this might have been acceptable for memory backends associated
> with RAM, this corrupts application data for NVDIMMs.
>
> Instead of setting every page to zero, read the current byte
> value and then just write that same value back, so we are not
> corrupting the original data. Directly write the value instead
> of memset()ing it, since there's no benefit to memset for a
> single byte write.
>
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>
> Changed in v3:
>
> - Mark the target of the write as volatile, instead of the intermedia
> variable (Andrea)
>
> util/oslib-posix.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
2017-03-03 11:32 [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc Daniel P. Berrange
` (2 preceding siblings ...)
2017-03-10 4:27 ` Stefan Hajnoczi
@ 2017-03-10 4:30 ` Stefan Hajnoczi
2017-03-10 8:34 ` Paolo Bonzini
3 siblings, 1 reply; 6+ messages in thread
From: Stefan Hajnoczi @ 2017-03-10 4:30 UTC (permalink / raw)
To: Daniel P. Berrange
Cc: qemu-devel, Andrea Arcangeli, Michal Privoznik, Jitendra Kolhe,
Stefan Hajnoczi, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 1119 bytes --]
On Fri, Mar 03, 2017 at 11:32:55AM +0000, Daniel P. Berrange wrote:
> When using a memory-backend object with prealloc turned on, QEMU
> will memset() the first byte in every memory page to zero. While
> this might have been acceptable for memory backends associated
> with RAM, this corrupts application data for NVDIMMs.
>
> Instead of setting every page to zero, read the current byte
> value and then just write that same value back, so we are not
> corrupting the original data. Directly write the value instead
> of memset()ing it, since there's no benefit to memset for a
> single byte write.
>
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>
> Changed in v3:
>
> - Mark the target of the write as volatile, instead of the intermedia
> variable (Andrea)
>
> util/oslib-posix.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
There are no official maintainers for this source file. I want to make
sure this patch goes into QEMU 2.9, so...
Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v3] os: don't corrupt pre-existing memory-backend data with prealloc
2017-03-10 4:30 ` Stefan Hajnoczi
@ 2017-03-10 8:34 ` Paolo Bonzini
0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2017-03-10 8:34 UTC (permalink / raw)
To: Stefan Hajnoczi, Daniel P. Berrange
Cc: qemu-devel, Andrea Arcangeli, Michal Privoznik, Jitendra Kolhe,
Stefan Hajnoczi
On 10/03/2017 05:30, Stefan Hajnoczi wrote:
> On Fri, Mar 03, 2017 at 11:32:55AM +0000, Daniel P. Berrange wrote:
>> When using a memory-backend object with prealloc turned on, QEMU
>> will memset() the first byte in every memory page to zero. While
>> this might have been acceptable for memory backends associated
>> with RAM, this corrupts application data for NVDIMMs.
>>
>> Instead of setting every page to zero, read the current byte
>> value and then just write that same value back, so we are not
>> corrupting the original data. Directly write the value instead
>> of memset()ing it, since there's no benefit to memset for a
>> single byte write.
>>
>> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
>> ---
>>
>> Changed in v3:
>>
>> - Mark the target of the write as volatile, instead of the intermedia
>> variable (Andrea)
>>
>> util/oslib-posix.c | 15 ++++++++++++++-
>> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> There are no official maintainers for this source file. I want to make
> sure this patch goes into QEMU 2.9, so...
>
> Thanks, applied to my block tree:
> https://github.com/stefanha/qemu/commits/block
Yeah, I was leaving it to you because it's related to NVDIMM. Thanks,
Paolo
^ permalink raw reply [flat|nested] 6+ messages in thread