Messages in this thread | | | Date | Tue, 11 Nov 2003 19:15:55 +0100 | From | Manfred Spraul <> | Subject | Re: 2.6 /proc/interrupts fails on systems with many CPUs |
| |
Erik wrote:
> /* don't ask for more than the kmalloc() max size, currently 128 KB */ > if (size > 128 * 1024) > size = 128 * 1024; >- buf = kmalloc(size, GFP_KERNEL); >+ buf = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); > > kmalloc needs a contiguous memory block. Thus after a long runtime, large kmalloc calls can fail due to fragmentation. I'd prefer if you switch to vmalloc after 2*PAGE_SIZE.
Or switch to a line based seq file iterator, then you wouldn't need the huge buffer. -- Manfred
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |