[PATCH v2 1/3] misc: use QEMU_IS_ALIGNED

Marc-André Lureau posted 3 patches 6 years, 1 month ago
Maintainers: Juan Quintela <quintela@redhat.com>, Richard Henderson <rth@twiddle.net>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Stefan Berger <stefanb@linux.ibm.com>
[PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Marc-André Lureau 6 years, 1 month ago
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 exec.c    | 4 ++--
 roms/SLOF | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/exec.c b/exec.c
index d4b769d0d4..1feda49ca1 100644
--- a/exec.c
+++ b/exec.c
@@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
 
     uint8_t *host_startaddr = rb->host + start;
 
-    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
+    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
         error_report("ram_block_discard_range: Unaligned start address: %p",
                      host_startaddr);
         goto err;
@@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
 
     if ((start + length) <= rb->used_length) {
         bool need_madvise, need_fallocate;
-        if (length & (rb->page_size - 1)) {
+        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
             error_report("ram_block_discard_range: Unaligned length: %zx",
                          length);
             goto err;
diff --git a/roms/SLOF b/roms/SLOF
index 9546892a80..8ebf2f55e1 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
+Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98
-- 
2.24.0.308.g228f53135a


Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Philippe Mathieu-Daudé 6 years, 1 month ago
On 1/3/20 8:39 AM, Marc-André Lureau wrote:
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>   exec.c    | 4 ++--
>   roms/SLOF | 2 +-
>   2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index d4b769d0d4..1feda49ca1 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
>   
>       uint8_t *host_startaddr = rb->host + start;
>   
> -    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
> +    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
>           error_report("ram_block_discard_range: Unaligned start address: %p",
>                        host_startaddr);
>           goto err;
> @@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
>   
>       if ((start + length) <= rb->used_length) {
>           bool need_madvise, need_fallocate;
> -        if (length & (rb->page_size - 1)) {
> +        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
>               error_report("ram_block_discard_range: Unaligned length: %zx",
>                            length);
>               goto err;
> diff --git a/roms/SLOF b/roms/SLOF
> index 9546892a80..8ebf2f55e1 160000
> --- a/roms/SLOF
> +++ b/roms/SLOF
> @@ -1 +1 @@
> -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
> +Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98

Without the SLOF submodule update:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Paolo Bonzini 6 years, 1 month ago
On 03/01/20 08:43, Philippe Mathieu-Daudé wrote:
> On 1/3/20 8:39 AM, Marc-André Lureau wrote:
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> ---
>>   exec.c    | 4 ++--
>>   roms/SLOF | 2 +-
>>   2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index d4b769d0d4..1feda49ca1 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb,
>> uint64_t start, size_t length)
>>         uint8_t *host_startaddr = rb->host + start;
>>   -    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
>> +    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
>>           error_report("ram_block_discard_range: Unaligned start
>> address: %p",
>>                        host_startaddr);
>>           goto err;
>> @@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb,
>> uint64_t start, size_t length)
>>         if ((start + length) <= rb->used_length) {
>>           bool need_madvise, need_fallocate;
>> -        if (length & (rb->page_size - 1)) {
>> +        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
>>               error_report("ram_block_discard_range: Unaligned length:
>> %zx",
>>                            length);
>>               goto err;
>> diff --git a/roms/SLOF b/roms/SLOF
>> index 9546892a80..8ebf2f55e1 160000
>> --- a/roms/SLOF
>> +++ b/roms/SLOF
>> @@ -1 +1 @@
>> -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
>> +Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98
> 
> Without the SLOF submodule update:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Also without the SLOF update:

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Paolo


Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Stefan Berger 6 years, 1 month ago
On 1/3/20 2:43 AM, Philippe Mathieu-Daudé wrote:
> On 1/3/20 8:39 AM, Marc-André Lureau wrote:
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> ---
>>   exec.c    | 4 ++--
>>   roms/SLOF | 2 +-
>>   2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index d4b769d0d4..1feda49ca1 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb, 
>> uint64_t start, size_t length)
>>         uint8_t *host_startaddr = rb->host + start;
>>   -    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
>> +    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
>>           error_report("ram_block_discard_range: Unaligned start 
>> address: %p",
>>                        host_startaddr);
>>           goto err;
>> @@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb, 
>> uint64_t start, size_t length)
>>         if ((start + length) <= rb->used_length) {
>>           bool need_madvise, need_fallocate;
>> -        if (length & (rb->page_size - 1)) {
>> +        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
>>               error_report("ram_block_discard_range: Unaligned 
>> length: %zx",
>>                            length);
>>               goto err;
>> diff --git a/roms/SLOF b/roms/SLOF
>> index 9546892a80..8ebf2f55e1 160000
>> --- a/roms/SLOF
>> +++ b/roms/SLOF
>> @@ -1 +1 @@
>> -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
>> +Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98
>
> Without the SLOF submodule update:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>

Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Marc-André Lureau 6 years, 1 month ago
On Fri, Jan 3, 2020 at 11:43 AM Philippe Mathieu-Daudé
<philmd@redhat.com> wrote:
>
> On 1/3/20 8:39 AM, Marc-André Lureau wrote:
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >   exec.c    | 4 ++--
> >   roms/SLOF | 2 +-
> >   2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/exec.c b/exec.c
> > index d4b769d0d4..1feda49ca1 100644
> > --- a/exec.c
> > +++ b/exec.c
> > @@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
> >
> >       uint8_t *host_startaddr = rb->host + start;
> >
> > -    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
> > +    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
> >           error_report("ram_block_discard_range: Unaligned start address: %p",
> >                        host_startaddr);
> >           goto err;
> > @@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
> >
> >       if ((start + length) <= rb->used_length) {
> >           bool need_madvise, need_fallocate;
> > -        if (length & (rb->page_size - 1)) {
> > +        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
> >               error_report("ram_block_discard_range: Unaligned length: %zx",
> >                            length);
> >               goto err;
> > diff --git a/roms/SLOF b/roms/SLOF
> > index 9546892a80..8ebf2f55e1 160000
> > --- a/roms/SLOF
> > +++ b/roms/SLOF
> > @@ -1 +1 @@
> > -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
> > +Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98
>
> Without the SLOF submodule update:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

oops, I think I should submit a git config proposal, for git commit -a
to exclude submodules, or warn loudly...

Or perhaps I should stop using -a.


Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Philippe Mathieu-Daudé 6 years, 1 month ago
On 1/3/20 8:59 AM, Marc-André Lureau wrote:
> On Fri, Jan 3, 2020 at 11:43 AM Philippe Mathieu-Daudé
> <philmd@redhat.com> wrote:
>>
>> On 1/3/20 8:39 AM, Marc-André Lureau wrote:
>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>> ---
>>>    exec.c    | 4 ++--
>>>    roms/SLOF | 2 +-
>>>    2 files changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/exec.c b/exec.c
>>> index d4b769d0d4..1feda49ca1 100644
>>> --- a/exec.c
>>> +++ b/exec.c
>>> @@ -3895,7 +3895,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
>>>
>>>        uint8_t *host_startaddr = rb->host + start;
>>>
>>> -    if ((uintptr_t)host_startaddr & (rb->page_size - 1)) {
>>> +    if (!QEMU_PTR_IS_ALIGNED(host_startaddr, rb->page_size)) {
>>>            error_report("ram_block_discard_range: Unaligned start address: %p",
>>>                         host_startaddr);
>>>            goto err;
>>> @@ -3903,7 +3903,7 @@ int ram_block_discard_range(RAMBlock *rb, uint64_t start, size_t length)
>>>
>>>        if ((start + length) <= rb->used_length) {
>>>            bool need_madvise, need_fallocate;
>>> -        if (length & (rb->page_size - 1)) {
>>> +        if (!QEMU_IS_ALIGNED(length, rb->page_size)) {
>>>                error_report("ram_block_discard_range: Unaligned length: %zx",
>>>                             length);
>>>                goto err;
>>> diff --git a/roms/SLOF b/roms/SLOF
>>> index 9546892a80..8ebf2f55e1 160000
>>> --- a/roms/SLOF
>>> +++ b/roms/SLOF
>>> @@ -1 +1 @@
>>> -Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
>>> +Subproject commit 8ebf2f55e1ba1492b942ba4b682160e644fc0f98
>>
>> Without the SLOF submodule update:
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> 
> oops, I think I should submit a git config proposal, for git commit -a
> to exclude submodules, or warn loudly...
> 
> Or perhaps I should stop using -a.

Once someone told me "never use 'git add -a' it is dangerous", but as I 
was learning git the same person told me "never use git-rebase it is 
dangerous" so I dunno :)

I have so many unstagged files in my repo that I can not use '-a'.
When doing mechanical changes, I dumbly use 'yes | git add -p'.
This worked fine so far...


Re: [PATCH v2 1/3] misc: use QEMU_IS_ALIGNED
Posted by Juan Quintela 6 years, 1 month ago
Marc-André Lureau <marcandre.lureau@redhat.com> wrote:
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

queuing it without the SLOF bits