b=2430
Use kmalloc() instead of slab to allocate the MD and MSG portal descriptors. On x86_64 the MD and MSG structs got quite large, into the 2k range, though pages are still 4k there. This tricked slab into trying to back their slabs with multi-page allocations. These allocations failed under high load which lead to LBUG()s and timeouts. While we're in here, properly initialize the in_use counts and stop using sleeping allocations while holding the state lock.
Showing
- lnet/include/linux/kp30.h 0 additions, 33 deletionslnet/include/linux/kp30.h
- lnet/include/lnet/lib-lnet.h 9 additions, 13 deletionslnet/include/lnet/lib-lnet.h
- lnet/include/lnet/lib-p30.h 9 additions, 13 deletionslnet/include/lnet/lib-p30.h
- lnet/include/lnet/lib-types.h 3 additions, 3 deletionslnet/include/lnet/lib-types.h
- lnet/lnet/lib-init.c 6 additions, 100 deletionslnet/lnet/lib-init.c
- lustre/portals/include/linux/kp30.h 0 additions, 33 deletionslustre/portals/include/linux/kp30.h
- lustre/portals/include/portals/lib-p30.h 9 additions, 13 deletionslustre/portals/include/portals/lib-p30.h
- lustre/portals/include/portals/lib-types.h 3 additions, 3 deletionslustre/portals/include/portals/lib-types.h
- lustre/portals/portals/lib-init.c 6 additions, 100 deletionslustre/portals/portals/lib-init.c
Loading
Please register or sign in to comment