AW: Two bugletts on Sparc 64 @ kernel 2.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear listmembers,
dear Mr. Miller,
after the hint I parsed through klogd and through my old documentation and found the following:
the failing call is a kernel function, it is not klogd:

linux/arch/sparc64/kernel/sys32_kernel_syms(struct kernel_sym32 *table)

(line 3747 @ 2.4.33):
tbl=kmalloc (len*sizeof (struct kernel_sym), GFP_KERNEL);

this function fails on sparc64 for module counts larger than 1820 given an unsigned long is used for "value" within struct kernel_sym; the reason for this has been explained. 72*1820 hits the border of 2^17 for kmalloc. I see no way how klogd should change this behaviour (besides not using this function).

So, there is a small deficiency in this regard within the sparc64 kernel, as the sparc64 kernel is capable of reading less many symbols of type kernel_sym than 32 Bit kernels on i686 for example. The very same function exists in linux/arch/x86_64/ia32; so my guess would be that similar problems would show on x86 given a 32Bit userland and a 64Bit kernel. I haven't recognized this on x86_64 until now, I would be very happy if someone could kindly give me an advice on how this is taken care of on such machines. klogd is always 1.4.1, this cannot be the place where the problem is taken care for.

Thanks for your efforts,
take care



Dieter Jurzitza




-- 
________________________________________________

HARMAN BECKER AUTOMOTIVE SYSTEMS

Dr.-Ing. Dieter Jurzitza
Manager Hardware Systems
   System Development

Industriegebiet Ittersbach
Becker-Göring Str. 16
D-76307 Karlsbad / Germany

Phone: +49 (0)7248 71-1577
Fax:   +49 (0)7248 71-1216
eMail: DJurzitza@xxxxxxxxxxxxxxxx
Internet: http://www.becker.de
 

> -----Ursprüngliche Nachricht-----
> Von: David Miller [mailto:davem@xxxxxxxxxxxxx] 
> Gesendet: Mittwoch, 23. August 2006 07:26
> An: Jurzitza, Dieter
> Cc: linux-kernel-owner@xxxxxxxxxxxxxxx; sparclinux@xxxxxxxxxxxxxxx
> Betreff: Re: Two bugletts on Sparc 64 @ kernel 2.4
> 
> 
> 
> The klogd program needs to be adjusted to determine the data 
> type the kernel is using for module symbols, just like modutils does.
> 
> What modutils does is it asks the system what type it is, 
> 32-bit or 64-bit, by making a uname() call.
> 
> Using this information, modutils will adjust the data types 
> it uses internally, as appropriate.
> 
> This handled properly a 32-bit binary running on a 64-bit kernel.
> 
> So the kernel change you are proposing is not the correct fix 
> for this problem.
> 


*******************************************
Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den Absender und loeschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
 
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the contents in this e-mail is strictly forbidden.
*******************************************

-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux