qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
       [not found] <CAAu8pHtrWpkSX2bDHLkJTZAXqXg3Rh%3DHzx1M1EmovPdst4NSCw@mail.gmail.com>
@ 2011-08-26 14:15 ` cedric.vincent
  2011-08-26 14:19   ` Peter Maydell
  0 siblings, 1 reply; 8+ messages in thread
From: cedric.vincent @ 2011-08-26 14:15 UTC (permalink / raw)
  To: Jan Kiszka, Blue Swirl; +Cc: Riku Voipio, qemu-devel

Hi Jan Kiszka & Blue Swirl,

Hi would like to report a strange behaviour exposed by commit 0d101938
"tcg: Reload local variables after return from longjmp" (found with
`git bisect` and then reverted to be sure).

When emulating in *user-mode* the program `msgmerge`, I get the
following error(s):

    $ /usr/bin/msgmerge --update -q /dev/null /dev/null
    qemu-arm: pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.

or, from time to time:

    $ /usr/bin/msgmerge --update -q /dev/null /dev/null
    user-exec.c:99: handle_cpu_signal: Assertion `({ unsigned long __guest = (unsigned long)(address) - guest_base; __guest < (1ul << 32); })' failed.

For information:

    - version = 0.15.0 (vanilla)
    - guest   = ARMedSlack 13.37 (arm)
    - host 1  = Slackware64 13.37 (x86_64, gcc 4.5.3)
    - host 2  = Ubuntu 10.04.1 (x86_64, 4.4.3)

Please, could you help me to understand this issue?

Thanks in advance,
Cédric,

PS:

If you wish to reproduce the problem, first download a minimal
ARMedSlack-13.37 rootfs:

    ftp://ftp.armedslack.org/armedslack/armedslack-devtools/minirootfs/roots/slack-13.37-miniroot_01May11.tar.xz

and then install these three missing packages:

    ftp://ftp.armedslack.org/armedslack/armedslack-13.37/slackware/d/gettext-tools-0.18.1.1-arm-1.tgz
    ftp://ftp.armedslack.org/armedslack/armedslack-13.37/slackware/l/libxml2-2.7.8-arm-2.tgz
    ftp://ftp.armedslack.org/armedslack/armedslack-13.37/slackware/d/gcc-4.5.2-arm-3.tgz

    $ installpkg gettext-0.18.1.1-arm-1.tgz 
    $ installpkg libxml2-2.7.8-arm-2.tgz
    $ installpkg gcc-4.5.2-arm-3.tgz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-26 14:15 ` [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp") cedric.vincent
@ 2011-08-26 14:19   ` Peter Maydell
  2011-08-26 14:28     ` cedric.vincent
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Maydell @ 2011-08-26 14:19 UTC (permalink / raw)
  To: cedric.vincent, Jan Kiszka, Blue Swirl, qemu-devel, Riku Voipio

On 26 August 2011 15:15,  <cedric.vincent@st.com> wrote:
> Hi Jan Kiszka & Blue Swirl,
>
> Hi would like to report a strange behaviour exposed by commit 0d101938
> "tcg: Reload local variables after return from longjmp" (found with
> `git bisect` and then reverted to be sure).
>
> When emulating in *user-mode* the program `msgmerge`, I get the
> following error(s):
>
>    $ /usr/bin/msgmerge --update -q /dev/null /dev/null
>    qemu-arm: pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.

Yes; we've discussed this before in this thread:
http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01623.html

That commit breaks multi-threaded usermode programs (well, even
more than they usually are). I think we decided that the right
fix was to make cpu_single_env thread-local (but that needs a
slight change for windows, see one of the messages in the thread).

-- PMM

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-26 14:19   ` Peter Maydell
@ 2011-08-26 14:28     ` cedric.vincent
  2011-08-26 17:37       ` Blue Swirl
  0 siblings, 1 reply; 8+ messages in thread
From: cedric.vincent @ 2011-08-26 14:28 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Blue Swirl, Jan Kiszka, Riku Voipio, qemu-devel@nongnu.org

On Fri, Aug 26, 2011 at 04:19:26PM +0200, Peter Maydell wrote:
> Yes; we've discussed this before in this thread:
> http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01623.html
> 
> That commit breaks multi-threaded usermode programs (well, even
> more than they usually are). I think we decided that the right
> fix was to make cpu_single_env thread-local (but that needs a
> slight change for windows, see one of the messages in the thread).

Oops, I didn't read this thread correctly...

Thanks!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-26 14:28     ` cedric.vincent
@ 2011-08-26 17:37       ` Blue Swirl
  2011-08-29  7:24         ` cedric.vincent
  0 siblings, 1 reply; 8+ messages in thread
From: Blue Swirl @ 2011-08-26 17:37 UTC (permalink / raw)
  To: cedric.vincent, Peter Maydell, Jan Kiszka, qemu-devel@nongnu.org,
	Riku Voipio, Paolo Bonzini

On Fri, Aug 26, 2011 at 2:28 PM,  <cedric.vincent@st.com> wrote:
> On Fri, Aug 26, 2011 at 04:19:26PM +0200, Peter Maydell wrote:
>> Yes; we've discussed this before in this thread:
>> http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01623.html
>>
>> That commit breaks multi-threaded usermode programs (well, even
>> more than they usually are). I think we decided that the right
>> fix was to make cpu_single_env thread-local (but that needs a
>> slight change for windows, see one of the messages in the thread).
>
> Oops, I didn't read this thread correctly...

Since you seem to have a nice test case close at hand, could you
please test the fix proposed by Paolo?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-26 17:37       ` Blue Swirl
@ 2011-08-29  7:24         ` cedric.vincent
  2011-08-29  7:46           ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: cedric.vincent @ 2011-08-29  7:24 UTC (permalink / raw)
  To: Blue Swirl
  Cc: Peter Maydell, Riku Voipio, qemu-devel@nongnu.org, Paolo Bonzini,
	Jan Kiszka

On Fri, Aug 26, 2011 at 07:37:51PM +0200, Blue Swirl wrote:
> On Fri, Aug 26, 2011 at 2:28 PM,  <cedric.vincent@st.com> wrote:
> > On Fri, Aug 26, 2011 at 04:19:26PM +0200, Peter Maydell wrote:
> >> Yes; we've discussed this before in this thread:
> >> http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01623.html
> >>
> >> That commit breaks multi-threaded usermode programs (well, even
> >> more than they usually are). I think we decided that the right
> >> fix was to make cpu_single_env thread-local (but that needs a
> >> slight change for windows, see one of the messages in the thread).
> >
> > Oops, I didn't read this thread correctly...
> 
> Since you seem to have a nice test case close at hand, could you
> please test the fix proposed by Paolo?

I suppose you are talking about this one:

    http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01655.html

This patch can't fix the problem since it isn't related to the user
mode.

Regards,
Cédric.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-29  7:24         ` cedric.vincent
@ 2011-08-29  7:46           ` Paolo Bonzini
  2011-08-29  7:48             ` cedric.vincent
  0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2011-08-29  7:46 UTC (permalink / raw)
  To: cedric.vincent, Blue Swirl, Peter Maydell, Jan Kiszka,
	qemu-devel@nongnu.org, Riku Voipio

On 08/29/2011 09:24 AM, cedric.vincent@st.com wrote:
>> >
>> >  Since you seem to have a nice test case close at hand, could you
>> >  please test the fix proposed by Paolo?
> I suppose you are talking about this one:
>
>      http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01655.html
>
> This patch can't fix the problem since it isn't related to the user
> mode.

The patch is only partial, it is the Windows-specific part.

Paolo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-29  7:46           ` Paolo Bonzini
@ 2011-08-29  7:48             ` cedric.vincent
  2011-08-29  7:50               ` Paolo Bonzini
  0 siblings, 1 reply; 8+ messages in thread
From: cedric.vincent @ 2011-08-29  7:48 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Blue Swirl, Peter Maydell, Riku Voipio, qemu-devel@nongnu.org,
	Jan Kiszka

Hi Paolo,

On Mon, Aug 29, 2011 at 09:46:37AM +0200, Paolo Bonzini wrote:
> On 08/29/2011 09:24 AM, cedric.vincent@st.com wrote:
> >> >
> >> >  Since you seem to have a nice test case close at hand, could you
> >> >  please test the fix proposed by Paolo?
> > I suppose you are talking about this one:
> >
> >      http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01655.html
> >
> > This patch can't fix the problem since it isn't related to the user
> > mode.
> 
> The patch is only partial, it is the Windows-specific part.

Is there a full patch I can test [on Linux]?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp")
  2011-08-29  7:48             ` cedric.vincent
@ 2011-08-29  7:50               ` Paolo Bonzini
  0 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2011-08-29  7:50 UTC (permalink / raw)
  To: cedric.vincent, Blue Swirl, Peter Maydell, Jan Kiszka,
	qemu-devel@nongnu.org, Riku Voipio

On 08/29/2011 09:48 AM, cedric.vincent@st.com wrote:
> Hi Paolo,
>
> On Mon, Aug 29, 2011 at 09:46:37AM +0200, Paolo Bonzini wrote:
>> On 08/29/2011 09:24 AM, cedric.vincent@st.com wrote:
>>>>>
>>>>>   Since you seem to have a nice test case close at hand, could you
>>>>>   please test the fix proposed by Paolo?
>>> I suppose you are talking about this one:
>>>
>>>       http://lists.nongnu.org/archive/html/qemu-devel/2011-08/msg01655.html
>>>
>>> This patch can't fix the problem since it isn't related to the user
>>> mode.
>>
>> The patch is only partial, it is the Windows-specific part.
>
> Is there a full patch I can test [on Linux]?

I'll try to put together something, but I never looked very much at user 
mode.

Paolo

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-08-29  7:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CAAu8pHtrWpkSX2bDHLkJTZAXqXg3Rh%3DHzx1M1EmovPdst4NSCw@mail.gmail.com>
2011-08-26 14:15 ` [Qemu-devel] Regression in QEMU user-mode (Was: "tcg: Reload local variables after return from longjmp") cedric.vincent
2011-08-26 14:19   ` Peter Maydell
2011-08-26 14:28     ` cedric.vincent
2011-08-26 17:37       ` Blue Swirl
2011-08-29  7:24         ` cedric.vincent
2011-08-29  7:46           ` Paolo Bonzini
2011-08-29  7:48             ` cedric.vincent
2011-08-29  7:50               ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).