public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* SH: A typo in lowlevellock.S
@ 2005-09-05 12:07 Kaz Kojima
  2005-09-05 21:59 ` Ulrich Drepper
  2005-09-06  1:16 ` Ulrich Drepper
  0 siblings, 2 replies; 4+ messages in thread
From: Kaz Kojima @ 2005-09-05 12:07 UTC (permalink / raw)
  To: libc-hacker

Hi,

The appended patch fixes a typo in a low-level lock function.  It
set the correct 3rd argument for the futex syscall in loop.  Sorry
for missing such an embarrassing bug.

Regards,
	kaz
--
nptl/ChangeLog:
2005-09-05  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
	Fix typo in register name.

diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
--- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S	2004-10-26 04:06:44.000000000 +0900
+++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S	2005-09-05 19:18:25.000000000 +0900
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,8 +51,8 @@ __lll_mutex_lock_wait:
 	SYSCALL_INST_PAD
 
 2:
-	mov	#2, r4
-	XCHG (r4, @r8, r2)
+	mov	#2, r6
+	XCHG (r6, @r8, r2)
 	tst	r2, r2
 	bf	1b
 

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

* Re: SH: A typo in lowlevellock.S
  2005-09-05 12:07 SH: A typo in lowlevellock.S Kaz Kojima
@ 2005-09-05 21:59 ` Ulrich Drepper
  2005-09-05 23:33   ` Kaz Kojima
  2005-09-06  1:16 ` Ulrich Drepper
  1 sibling, 1 reply; 4+ messages in thread
From: Ulrich Drepper @ 2005-09-05 21:59 UTC (permalink / raw)
  To: Kaz Kojima; +Cc: libc-hacker

[-- Attachment #1: Type: text/plain, Size: 386 bytes --]

Kaz Kojima wrote:
> The appended patch fixes a typo in a low-level lock function.  It
> set the correct 3rd argument for the futex syscall in loop.  Sorry
> for missing such an embarrassing bug.

The test suite missed this?  If yes, can you come up with a test which
exposes the problem?

-- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 251 bytes --]

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

* Re: SH: A typo in lowlevellock.S
  2005-09-05 21:59 ` Ulrich Drepper
@ 2005-09-05 23:33   ` Kaz Kojima
  0 siblings, 0 replies; 4+ messages in thread
From: Kaz Kojima @ 2005-09-05 23:33 UTC (permalink / raw)
  To: libc-hacker

Ulrich Drepper <drepper@redhat.com> wrote:
> The test suite missed this?  If yes, can you come up with a test which
> exposes the problem?

The current testcases didn't fail for this normally.  Perhaps
I've seen but missed it because it wasn't reproducible.  It seems
to be timing critical on the slow machines like sh.
I've noticed it with a random behavior of a libstdc++-v3 testcase
gcc/libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.c.
The appended is a slightly changed version of it which will end in
~30s on my sh box with the patched libpthread but will take long
time or hang up with high probability on the old libpthread.
I could replace the locale stuff with something and rewrite it in
C using pthread_mutex_{lock,unlock} directly, though I'm unsure
that I can get the appropriate timings.

Regards,
	kaz
--
// Copyright (C) 2004, 2005 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.

// 22.1.1.2 locale constructors and destructors [lib.locale.cons]

#include <locale>
#include <pthread.h>

const int max_thread_count = 2;
//const int max_loop_count = 1000000; // orig value
const int max_loop_count = 100000;
const int max_locales = 10;
 
void* thread_main(void*)
{
  try
    {
      std::locale loc_c = std::locale::classic();
      std::locale loc[max_locales];
      for (int j = 0; j < max_locales; ++j)
	loc[j] = std::locale(j % 2 ? "en_US" : "fr_FR");
      
      for (int i = 0; i < max_loop_count; ++i)
	{
	  int k = i % max_locales;
	  loc[k] = std::locale::global(loc[k]);
	  
	  if (i % 37 == 0)
	    loc[k] = loc[k].combine<std::ctype<char> >(loc_c);
	}
    }
  catch (...) { }
  return 0;
}
 
int
main()
{
  pthread_t tid[max_thread_count];
  
  for (int i = 0; i < max_thread_count; i++)
    pthread_create (&tid[i], NULL, thread_main, 0);
  
  for (int i = 0; i < max_thread_count; i++)
    pthread_join (tid[i], NULL);

  return 0;
}

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

* Re: SH: A typo in lowlevellock.S
  2005-09-05 12:07 SH: A typo in lowlevellock.S Kaz Kojima
  2005-09-05 21:59 ` Ulrich Drepper
@ 2005-09-06  1:16 ` Ulrich Drepper
  1 sibling, 0 replies; 4+ messages in thread
From: Ulrich Drepper @ 2005-09-06  1:16 UTC (permalink / raw)
  To: Kaz Kojima; +Cc: libc-hacker

[-- Attachment #1: Type: text/plain, Size: 101 bytes --]

Applied.

-- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 251 bytes --]

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

end of thread, other threads:[~2005-09-06  1:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-05 12:07 SH: A typo in lowlevellock.S Kaz Kojima
2005-09-05 21:59 ` Ulrich Drepper
2005-09-05 23:33   ` Kaz Kojima
2005-09-06  1:16 ` Ulrich Drepper

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 read-only IMAP folder(s) and NNTP newsgroup(s).