Re: [LTP] clone tests fails

2010-01-07 Thread Michal Simek
Jiri Palecek wrote:
 Michal Simek napsal(a):
 Jiri Palecek wrote:
 Serge E. Hallyn napsal(a):
 Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,

 I have one question about one your big patch

 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018
  



 My question is why you add -1 in lib/cloner.c:65

 + ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 + clone_flags, arg);

 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?

 Because the same thing was done in lots of places all over the
 testsuite (and done wrong). This consolidates them all.


 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.

 h. Because if we've done stack = malloc(stack_size), then
 stack+stack_size is 1 above the the top of stack.

 If the value of the parameter is the stack pointer of the created
 thread, it shouldn't matter - the address should never be used (read
 or written).

 Michal, I suspect the failures you see are somehow related to
 alignment (that your architecture doesn't like odd addresses). Is that
 right? Under x86, the address gets aligned (so some of the space is
 unused).

 yes, alignment is problem. I need to subtract at least -4.

 As you can see below I am getting fault in kernel about task_size exceed.

 # ./clone01
 kernel task_size exceed, 0x, 0xc000
 Oops: Exception in kernel mode, sig: 11
 Registers dump: mode=1
 r1=CDC3FF50, r2=, r3=08A1, r4=
 r5=, r6=0800, r7=CDC3FF68, r8=0028
 r9=481804AC, r10=, r11=45AA, r12=C00011C4
 r13=, r14=6B6B6B6B, r15=C00083F8, r16=6B6B6B6B
 r17=6B6B6B6B, r18=, r19=, r20=100074C8
 r21=, r22=100073CC, r23=, r24=
 r25=1000C050, r26=0001, r27=10005310, r28=10001060
 r29=, r30=, r31=CDD4C358, rPC=C00011DC
 msr=45AA, ear=, esr=00B2, fsr=10005310
 clone01 1 TPASS : clone() returned 66
 
 I do not understand this dump fully, but couldn't it be just that your 
 arch needs the 4 bytes of memory above what you pass as stack top 
 (task_size exceeded should mean you accessed some address outside 
 userspace)? Could you please test this by trying to run the tests with 
 stack_size%4 != 0 (eg. pass PAGE_SIZE+1 to ltp_clone, subtract 1 in 
 ltp_clone and so on).

It is just reaction on unaligned access. if is aligned then system has 
no problem.

Thanks,
Michal

 
 Regards
 Jiri Palecek


-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-06 Thread Michal Simek
Jiri Palecek wrote:
 Serge E. Hallyn napsal(a):
 Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,

 I have one question about one your big patch

 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018
  


 My question is why you add -1 in lib/cloner.c:65

 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);

 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?

 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.


 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.

 h.  Because if we've done stack = malloc(stack_size), then
 stack+stack_size is 1 above the the top of stack.
 
 If the value of the parameter is the stack pointer of the created 
 thread, it shouldn't matter - the address should never be used (read or 
 written).
 
 Michal, I suspect the failures you see are somehow related to alignment 
 (that your architecture doesn't like odd addresses). Is that right? 
 Under x86, the address gets aligned (so some of the space is unused).

yes, alignment is problem. I need to subtract at least -4.

As you can see below I am getting fault in kernel about task_size exceed.

# ./clone01
kernel task_size exceed, 0x, 0xc000
Oops: Exception in kernel mode, sig: 11
  Registers dump: mode=1
  r1=CDC3FF50, r2=, r3=08A1, r4=
  r5=, r6=0800, r7=CDC3FF68, r8=0028
  r9=481804AC, r10=, r11=45AA, r12=C00011C4
  r13=, r14=6B6B6B6B, r15=C00083F8, r16=6B6B6B6B
  r17=6B6B6B6B, r18=, r19=, r20=100074C8
  r21=, r22=100073CC, r23=, r24=
  r25=1000C050, r26=0001, r27=10005310, r28=10001060
  r29=, r30=, r31=CDD4C358, rPC=C00011DC
  msr=45AA, ear=, esr=00B2, fsr=10005310
clone01 1  TPASS  :  clone() returned 66

Michal


 
 Perhaps both of these behaviors should be tested by LTP?
 
 Regards
 Jiri Palecek


-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-06 Thread Michal Simek
Serge E. Hallyn wrote:
 Quoting Jiri Palecek (jpale...@web.de):
 Serge E. Hallyn napsal(a):
 Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,

 I have one question about one your big patch

 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018

 My question is why you add -1 in lib/cloner.c:65

 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);

 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?
 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.

 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.
 h.  Because if we've done stack = malloc(stack_size), then
 stack+stack_size is 1 above the the top of stack.
 If the value of the parameter is the stack pointer of the created
 thread, it shouldn't matter - the address should never be used (read
 or written).

 Michal, I suspect the failures you see are somehow related to
 alignment (that your architecture doesn't like odd addresses). Is
 that right? Under x86, the address gets aligned (so some of the
 space is unused).

 Perhaps both of these behaviors should be tested by LTP?
 
 Gah, yes, Nathan had mentioned arches where this matters (including
 some power?).  Nathan, did you have a generic fix for this in
 userspace?  Should always be safe to do
   (stack + stack_size - 1)  ~0xf
 ?

(long)(stack + stack_size - 1)  ~0x3

0x3 is enough - just clear last 2 bits.
I am not sure about long type - maybe need long long or long double.

Mike's solution not work for me.

Thanks,
Michal






 
 -serge


-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-06 Thread Jiri Palecek
Mike Frysinger napsal(a):
 On Tuesday 05 January 2010 20:05:17 Jiri Palecek wrote:
 Michal, I suspect the failures you see are somehow related to alignment
   (that your architecture doesn't like odd addresses). Is that right? Under
   x86, the address gets aligned (so some of the space is unused).

 Perhaps both of these behaviors should be tested by LTP?

 i dont think such tests would be reliable or useful ?

I don't think so. The set of addresses that can be successfully passed to 
clone() and the actual space the stack will occupy with the given parameters 
are 
definitely part of the interface (because the user cannot use the interface 
correctly without knowing these), therefore testing them is useful, and they 
should be quite easily testable, although the test would be 
architecture-dependent, but oh well, so is the whole clone() syscall.

Regards
 Jiri Palecek

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-06 Thread Jiri Palecek
Mike Frysinger napsal(a):
 On Tuesday 05 January 2010 22:26:44 Serge E. Hallyn wrote:
 Quoting Jiri Palecek (jpale...@web.de):
 Michal, I suspect the failures you see are somehow related to
 alignment (that your architecture doesn't like odd addresses). Is
 that right? Under x86, the address gets aligned (so some of the
 space is unused).

 Perhaps both of these behaviors should be tested by LTP?

 Gah, yes, Nathan had mentioned arches where this matters (including
 some power?).  Nathan, did you have a generic fix for this in
 userspace?  Should always be safe to do
  (stack + stack_size - 1)  ~0xf
 ?

 (sizeof(long double)-1) would probably be better than 0xf

sizeof(long double) is not a power of 2 (at least on 386), so this wouldn't 
probably work. glibc hardcodes the alignment (to 16 on most arches).

   Jiri Palecek


--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-05 Thread Jiri Palecek
Serge E. Hallyn napsal(a):
 Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,

 I have one question about one your big patch

 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018

 My question is why you add -1 in lib/cloner.c:65

 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);

 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?

 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.


 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.

 h.  Because if we've done stack = malloc(stack_size), then
 stack+stack_size is 1 above the the top of stack.

If the value of the parameter is the stack pointer of the created thread, it 
shouldn't matter - the address should never be used (read or written).

Michal, I suspect the failures you see are somehow related to alignment (that 
your architecture doesn't like odd addresses). Is that right? Under x86, the 
address gets aligned (so some of the space is unused).

Perhaps both of these behaviors should be tested by LTP?

Regards
 Jiri Palecek

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-05 Thread Serge E. Hallyn
Quoting Jiri Palecek (jpale...@web.de):
 Serge E. Hallyn napsal(a):
 Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,
 
 I have one question about one your big patch
 
 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018
 
 My question is why you add -1 in lib/cloner.c:65
 
 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);
 
 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?
 
 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.
 
 
 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.
 
 h.  Because if we've done stack = malloc(stack_size), then
 stack+stack_size is 1 above the the top of stack.
 
 If the value of the parameter is the stack pointer of the created
 thread, it shouldn't matter - the address should never be used (read
 or written).
 
 Michal, I suspect the failures you see are somehow related to
 alignment (that your architecture doesn't like odd addresses). Is
 that right? Under x86, the address gets aligned (so some of the
 space is unused).
 
 Perhaps both of these behaviors should be tested by LTP?

Gah, yes, Nathan had mentioned arches where this matters (including
some power?).  Nathan, did you have a generic fix for this in
userspace?  Should always be safe to do
(stack + stack_size - 1)  ~0xf
?

-serge

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-05 Thread Mike Frysinger
On Tuesday 05 January 2010 22:26:44 Serge E. Hallyn wrote:
 Quoting Jiri Palecek (jpale...@web.de):
  Michal, I suspect the failures you see are somehow related to
  alignment (that your architecture doesn't like odd addresses). Is
  that right? Under x86, the address gets aligned (so some of the
  space is unused).
 
  Perhaps both of these behaviors should be tested by LTP?
 
 Gah, yes, Nathan had mentioned arches where this matters (including
 some power?).  Nathan, did you have a generic fix for this in
 userspace?  Should always be safe to do
   (stack + stack_size - 1)  ~0xf
 ?

(sizeof(long double)-1) would probably be better than 0xf
-mike


signature.asc
Description: This is a digitally signed message part.
--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev ___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-05 Thread Mike Frysinger
On Tuesday 05 January 2010 20:05:17 Jiri Palecek wrote:
 Michal, I suspect the failures you see are somehow related to alignment
  (that your architecture doesn't like odd addresses). Is that right? Under
  x86, the address gets aligned (so some of the space is unused).
 
 Perhaps both of these behaviors should be tested by LTP?

i dont think such tests would be reliable or useful ?
-mike


signature.asc
Description: This is a digitally signed message part.
--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev ___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


[LTP] clone tests fails

2010-01-04 Thread Michal Simek
Hi Mike,

I have one question about one your big patch

http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018

My question is why you add -1 in lib/cloner.c:65

+   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
+   clone_flags, arg);

In previous code in clone testcases was nothing like this.
What reason have you had to add it?

Of course the reason is that on Microblaze some tests failed.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-04 Thread Serge E. Hallyn
Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,
 
 I have one question about one your big patch
 
 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018
 
 My question is why you add -1 in lib/cloner.c:65
 
 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);
 
 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?

Because the same thing was done in lots of places all over the
testsuite (and done wrong).  This consolidates them all.

 Of course the reason is that on Microblaze some tests failed.

How do they fail?  Does clone on Microblaze take the top of
stack?

-serge

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-04 Thread Michal Simek
Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,

 I have one question about one your big patch

 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018

 My question is why you add -1 in lib/cloner.c:65

 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);

 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?
 
 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.


I don't have anything against consolidation. I just want to know why 
there is that -1 which weren't in any clone testcases. Nothing more 
nothing less.

Michal

 
 Of course the reason is that on Microblaze some tests failed.
 
 How do they fail?  Does clone on Microblaze take the top of
 stack?
 
 -serge


-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list


Re: [LTP] clone tests fails

2010-01-04 Thread Serge E. Hallyn
Quoting Michal Simek (michal.si...@petalogix.com):
 Serge E. Hallyn wrote:
 Quoting Michal Simek (michal.si...@petalogix.com):
 Hi Mike,
 
 I have one question about one your big patch
 
 http://git.kernel.org/?p=linux/kernel/git/galak/ltp.git;a=commitdiff;h=391dc18fe3271fbf2ca1864a5299f091c31e0018
 
 My question is why you add -1 in lib/cloner.c:65
 
 +   ret = clone(fn, (stack ? stack + stack_size - 1 : NULL),
 +   clone_flags, arg);
 
 In previous code in clone testcases was nothing like this.
 What reason have you had to add it?
 
 Because the same thing was done in lots of places all over the
 testsuite (and done wrong).  This consolidates them all.
 
 
 I don't have anything against consolidation. I just want to know why
 there is that -1 which weren't in any clone testcases. Nothing more
 nothing less.

h.  Because if we've done stack = malloc(stack_size), then
stack+stack_size is 1 above the the top of stack.

-serge

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
___
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list