]> granicus.if.org Git - zfs/commitdiff
Double large kmalloc warning size to 4 pages. It was 2 pages, and ideally
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Tue, 1 Apr 2008 16:09:18 +0000 (16:09 +0000)
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Tue, 1 Apr 2008 16:09:18 +0000 (16:09 +0000)
it should be dropped to one page but in the short term we should be able
to easily live with 4 page allocations.

Fix the nvlist bug, it turns out the user space side of things were
packing the nvlists correctly as little endian, and the kernel space
side of things due to a missing #define were unpacking them as big endian.

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@62 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c

include/sys/isa_defs.h
include/sys/kmem.h

index 3730561da5eef1fd1704a138b8ad3339bafc1281..57a6d366e95b64ceb6cc64661ff2e82151bf3547 100644 (file)
@@ -1,4 +1,68 @@
 #ifndef        _SPL_ISA_DEFS_H
 #define        _SPL_ISA_DEFS_H
 
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* x86_64 arch specific defines */
+#if defined(__x86_64) || defined(__x86_64__)
+
+#if !defined(__x86_64)
+#define __x86_64
+#endif
+
+#if !defined(__amd64)
+#define __amd64
+#endif
+
+#if !defined(__x86)
+#define __x86
+#endif
+
+#if !defined(_LP64)
+#define _LP64
+#endif
+
+/* i386 arch specific defines */
+#elif defined(__i386) || defined(__i386__)
+
+#if !defined(__i386)
+#define __i386
+#endif
+
+#if !defined(__x86)
+#define __x86
+#endif
+
+#if !defined(_ILP32)
+#define _ILP32
+#endif
+
+#else /* Currently only x86_64 and i386 arches supported */
+#error "Unsupported ISA type"
+#endif
+
+#if defined(_ILP32) && defined(_LP64)
+#error "Both _ILP32 and _LP64 are defined"
+#endif
+
+#include <sys/byteorder.h>
+
+#if defined(__LITTLE_ENDIAN) && !defined(_LITTLE_ENDIAN)
+#define _LITTLE_ENDIAN __LITTLE_ENDIAN
+#endif
+
+#if defined(__BIG_ENDIAN) && !defined(_BIG_ENDIAN)
+#define _BIG_ENDIAN __BIG_ENDIAN
+#endif
+
+#if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)
+#error "Both _LITTLE_ENDIAN and __BIG_ENDIAN are defined"
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
 #endif /* _SPL_ISA_DEFS_H */
index 393775fab9c4006a4e387f51d4aa241183f86068..a33643f158fe01eed7a12ecdeb7594da2e90980b 100644 (file)
@@ -34,7 +34,7 @@ extern int kmem_warning_flag;
 ({      void *_ptr_;                                                          \
                                                                               \
        /* Marked unlikely because we should never be doing this */           \
-        if (unlikely((size) > (PAGE_SIZE * 2)) && kmem_warning_flag)          \
+        if (unlikely((size) > (PAGE_SIZE * 4)) && kmem_warning_flag)          \
                 printk("spl: Warning kmem_alloc(%d, 0x%x) large alloc at %s:%d "\
                        "(%ld/%ld)\n", (int)(size), (int)(flags),              \
                       __FILE__, __LINE__,                                    \