[PULL 0/6] Linux user for 5.0 patches

Laurent Vivier posted 6 patches 1 week ago
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test FreeBSD passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200326072352.2056553-1-laurent@vivier.eu
Maintainers: Riku Voipio <riku.voipio@iki.fi>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <rth@twiddle.net>, Laurent Vivier <laurent@vivier.eu>, Eduardo Habkost <ehabkost@redhat.com>
configure                  |   8 +-
linux-user/i386/cpu_loop.c | 201 ++++++++++++++++++++++++++-----------
linux-user/syscall.c       |  39 ++++++-
target/i386/cpu.h          |  12 ++-
target/i386/translate.c    |  14 ++-
5 files changed, 205 insertions(+), 69 deletions(-)

[PULL 0/6] Linux user for 5.0 patches

Posted by Laurent Vivier 1 week ago
The following changes since commit 736cf607e40674776d752acc201f565723e86045:

  Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000)

are available in the Git repository at:

  git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request

for you to fetch changes up to a52f5f87bece827a338d6eb3332e3def86fb9c33:

  linux-user: Flush out implementation of gettimeofday (2020-03-26 08:08:54 +0100)

----------------------------------------------------------------
Emulate x86_64 vsyscalls
Fix syscall_nr.h cleanup

----------------------------------------------------------------

Laurent Vivier (1):
  linux-user, configure: fix (again) syscall_nr.h dependencies cleanup

Richard Henderson (5):
  target/i386: Renumber EXCP_SYSCALL
  linux-user/i386: Split out gen_signal
  linux-user/i386: Emulate x86_64 vsyscalls
  linux-user: Add x86_64 vsyscall page to /proc/self/maps
  linux-user: Flush out implementation of gettimeofday

 configure                  |   8 +-
 linux-user/i386/cpu_loop.c | 201 ++++++++++++++++++++++++++-----------
 linux-user/syscall.c       |  39 ++++++-
 target/i386/cpu.h          |  12 ++-
 target/i386/translate.c    |  14 ++-
 5 files changed, 205 insertions(+), 69 deletions(-)

-- 
2.25.1


Re: [PULL 0/6] Linux user for 5.0 patches

Posted by Peter Maydell 1 week ago
On Thu, 26 Mar 2020 at 07:24, Laurent Vivier <laurent@vivier.eu> wrote:
>
> The following changes since commit 736cf607e40674776d752acc201f565723e86045:
>
>   Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000)
>
> are available in the Git repository at:
>
>   git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request
>
> for you to fetch changes up to a52f5f87bece827a338d6eb3332e3def86fb9c33:
>
>   linux-user: Flush out implementation of gettimeofday (2020-03-26 08:08:54 +0100)
>
> ----------------------------------------------------------------
> Emulate x86_64 vsyscalls
> Fix syscall_nr.h cleanup
>
> ----------------------------------------------------------------

Still fails :-(

/home/petmay01/linaro/qemu-for-merges/build/all-linux-static/x86_64-linux-user/qemu-x86_64
-L ./gnemul/qemu-x86_64 x86_64/ls -l dummyfile
qemu: 0x40008117e9: unhandled CPU exception 0x101 - aborting
RAX=000000000000003f RBX=000000006ffffe34 RCX=0000004000800b18
RDX=0000004000813180
RSI=0000000000000064 RDI=0000004000800670 RBP=000000006fffff40
RSP=0000004000800668
R8 =0000000000000000 R9 =0000004000800b44 R10=0000004000801a18
R11=0000004000801260
R12=00000040008008c0 R13=0000000000000008 R14=0000000000400040
R15=00000040008032d0
RIP=00000040008117e9 RFL=00000246 [---Z-P-] CPL=3 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 00000000 00000000
CS =0033 0000000000000000 ffffffff 00effb00 DPL=3 CS64 [-RA]
SS =002b 0000000000000000 ffffffff 00cff300 DPL=3 DS   [-WA]
DS =0000 0000000000000000 00000000 00000000
FS =0000 0000000000000000 00000000 00000000
GS =0000 0000000000000000 00000000 00000000
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy
GDT=     000000400091a000 0000007f
IDT=     0000004000919000 000001ff
CR0=80010001 CR2=0000000000000000 CR3=0000000000000000 CR4=00000220
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000
DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000500
Makefile:6: recipe for target 'test' failed

thanks
-- PMM

Re: [PULL 0/6] Linux user for 5.0 patches

Posted by Laurent Vivier 1 week ago
Le 26/03/2020 à 16:42, Peter Maydell a écrit :
> On Thu, 26 Mar 2020 at 07:24, Laurent Vivier <laurent@vivier.eu> wrote:
>>
>> The following changes since commit 736cf607e40674776d752acc201f565723e86045:
>>
>>   Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000)
>>
>> are available in the Git repository at:
>>
>>   git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request
>>
>> for you to fetch changes up to a52f5f87bece827a338d6eb3332e3def86fb9c33:
>>
>>   linux-user: Flush out implementation of gettimeofday (2020-03-26 08:08:54 +0100)
>>
>> ----------------------------------------------------------------
>> Emulate x86_64 vsyscalls
>> Fix syscall_nr.h cleanup
>>
>> ----------------------------------------------------------------
> 
> Still fails :-(

I would say it was expected...

I think your build dir is corrupted by a previous build.

You should have old .o file without .d file, and thus the .o file is not
refreshed (check the date of cpu_loop.o). We cannot cleanup that before
starting the build. The purpose of the cleanup in configure was to avoid
this kind of problem but I did it badly.

If you want to check incremental build, cleanup your build dir, checkout
v4.20 or master, build it, and then build the PR branch. it will work:
it's tested.

If you build 4.2.0, then master and then PR, the build dir will be
corrupted by the build of master that removes the .d files without
removing the .o files. So when you build the PR, cpu_loop.o  file
remains and is not rebuild with the new values in cpu.h.

We can't do anything to avoid that now, except removing all .o files
under *-linux-user...

Sorry for the mess...

Thanks,
Laurent



Re: [PULL 0/6] Linux user for 5.0 patches

Posted by Peter Maydell 1 week ago
On Thu, 26 Mar 2020 at 16:43, Laurent Vivier <laurent@vivier.eu> wrote:
>
> Le 26/03/2020 à 16:42, Peter Maydell a écrit :
> > On Thu, 26 Mar 2020 at 07:24, Laurent Vivier <laurent@vivier.eu> wrote:
> >>
> >> The following changes since commit 736cf607e40674776d752acc201f565723e86045:
> >>
> >>   Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000)
> >>
> >> are available in the Git repository at:
> >>
> >>   git://github.com/vivier/qemu.git tags/linux-user-for-5.0-pull-request
> >>
> >> for you to fetch changes up to a52f5f87bece827a338d6eb3332e3def86fb9c33:
> >>
> >>   linux-user: Flush out implementation of gettimeofday (2020-03-26 08:08:54 +0100)
> >>
> >> ----------------------------------------------------------------
> >> Emulate x86_64 vsyscalls
> >> Fix syscall_nr.h cleanup
> >>
> >> ----------------------------------------------------------------
> >
> > Still fails :-(
>
> I would say it was expected...
>
> I think your build dir is corrupted by a previous build.
>
> You should have old .o file without .d file, and thus the .o file is not
> refreshed (check the date of cpu_loop.o). We cannot cleanup that before
> starting the build. The purpose of the cleanup in configure was to avoid
> this kind of problem but I did it badly.
>
> If you want to check incremental build, cleanup your build dir, checkout
> v4.20 or master, build it, and then build the PR branch. it will work:
> it's tested.

Seems like it. I blew away and recreated the build tree, did a build
with master, and then applied this pullreq with my usual process
(so incremental build from there), and it was fine.

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.0
for any user-visible changes.

-- PMM