"fast data access mmu miss" on kernels w/o "makeoptions DEBUG=-g"

R. Imura imura at ryu16.org
Wed Aug 24 14:39:56 GMT 2005


Hi,

On Wed, Aug 24, 2005 at 10:01:47AM +0900, Pyun YongHyeon wrote:
> On Tue, Aug 23, 2005 at 09:11:17AM -0400, John Nielsen wrote:
>  > On Tuesday 23 August 2005 04:15, Pyun YongHyeon wrote:
>  > > It seems that iconv needs default KOBJMETHOD for ICONV_CONVERTER_NAME.
>  > > With attached patch I can boot my system with LIBICONV.
>  > > John Nielsen, would you please let me know how the attached patch goes
>  > > on your system?
>  > 
>  > My system already boots fine with LIBICONV, although I haven't tried 
> 
> Then it seems that you are seeing differnet issues not known to me.
> Would you please post stack trace?
> 
>  > mounting and SMB FS yet.
>  > 
> 
> smbfs does not work on sparc64 as smbfs assumes it runs on
> architectures that allow on-aligned memory access. It also needs
> big-endian clean up too.(See sys/mchain.h)

To begin with, you might want this patch. :)

Index: sys/sys/mchain.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/mchain.h,v
retrieving revision 1.9
diff -u -r1.9 mchain.h
--- sys/sys/mchain.h	29 Jul 2005 13:22:36 -0000	1.9
+++ sys/sys/mchain.h	24 Aug 2005 10:55:39 -0000
@@ -42,42 +42,36 @@
  */
 #if (BYTE_ORDER == LITTLE_ENDIAN)
 
-#define	htoles(x)	((u_int16_t)(x))
-#define	letohs(x)	((u_int16_t)(x))
-#define	htolel(x)	((u_int32_t)(x))
-#define	letohl(x)	((u_int32_t)(x))
-#define	htoleq(x)	((int64_t)(x))
-#define	letohq(x)	((int64_t)(x))
-
-#define	htobes(x)	(__htons(x))
-#define	betohs(x)	(__ntohs(x))
-#define	htobel(x)	(__htonl(x))
-#define	betohl(x)	(__ntohl(x))
-
-static __inline int64_t
-htobeq(int64_t x)
-{
-	return (int64_t)__htonl((u_int32_t)(x >> 32)) |
-	    (int64_t)__htonl((u_int32_t)(x & 0xffffffff)) << 32;
-}
-
-static __inline int64_t
-betohq(int64_t x)
-{
-	return (int64_t)__ntohl((u_int32_t)(x >> 32)) |
-	    (int64_t)__ntohl((u_int32_t)(x & 0xffffffff)) << 32;
-}
+#define	htoles(x)	((uint16_t)(x))
+#define	letohs(x)	((uint16_t)(x))
+#define	htolel(x)	((uint32_t)(x))
+#define	letohl(x)	((uint32_t)(x))
+#define	htoleq(x)	((uint64_t)(x))
+#define	letohq(x)	((uint64_t)(x))
+
+#define	htobes(x)	(bswap16(x))
+#define	betohs(x)	(bswap16(x))
+#define	htobel(x)	(bswap32(x))
+#define	betohl(x)	(bswap32(x))
+#define	htobeq(x)	(bswap64(x))
+#define	betohq(x)	(bswap64(x))
 
 #else	/* (BYTE_ORDER == LITTLE_ENDIAN) */
 
-#error "Macros for Big-Endians are incomplete"
+#define	htoles(x)	(bswap16(x))
+#define	letohs(x)	(bswap16(x))
+#define	htolel(x)	(bswap32(x))
+#define	letohl(x)	(bswap32(x))
+#define	htoleq(x)	(bswap64(x))
+#define	letohq(x)	(bswap64(x))
+
+#define	htobes(x)	((uint16_t)(x))
+#define	betohs(x)	((uint16_t)(x))
+#define	htobel(x)	((uint32_t)(x))
+#define	betohl(x)	((uint32_t)(x))
+#define	htobeq(x)	((uint64_t)(x))
+#define	betohq(x)	((uint64_t)(x))
 
-/*
-#define	htoles(x)	((u_int16_t)(x))
-#define	letohs(x)	((u_int16_t)(x))
-#define	htolel(x)	((u_int32_t)(x))
-#define	letohl(x)	((u_int32_t)(x))
-*/
 #endif	/* (BYTE_ORDER == LITTLE_ENDIAN) */
 #endif	/* _KERNEL */
 
Regards,
- R. Imura


More information about the freebsd-sparc64 mailing list