Date: Wed, 13 Jun 2001 01:07:44 -0400 From: Bosko Milekic <bmilekic@technokratis.com> To: freebsd-current@freebsd.org Cc: freebsd-alpha@freebsd.org Subject: New SMP Mbuf Allocator (PATCH and TESTING request) Message-ID: <20010613010744.A4083@technokratis.com>
next in thread | raw e-mail | index | archive | help
Hi -current && -alpha, If you run -CURRENT on multiprocessor alpha, please please please read this! :-) The final version (or next to final, depending on how this final testing stage goes) of the new mbuf allocator which I have been working on for the past 1.5 months and which I've already mentionned on -arch is now ready. I plan to commit the new bits within the next week. However, as is usually the case with commits of this magnitude, I'd like a few more tests to be run by a few more people. I've been testing the allocator myself (in several different ways, mainly resource exhaustion simulations) for the past couple of weeks and have been able to catch and fix a couple of bugs. Also, jake, jlemon, and Silby (Mike Silbersack) have provided me with some reviews, all of which have been integrated into the latest version of the patch (below). The latest version of the "mb_alloc" code, applying to -CURRENT as of 5 minutes ago can be found here: http://people.freebsd.org/~bmilekic/code/mb_slab/mb_alloc-LATEST.diff People who have the following hardware are needed to help test the patch: 1- UP -CURRENT systems (Intel && Alpha) 2- SMP -CURRENT systems (Intel) 3- SMP -CURRENT systems (Alpha) *** Especially important *** who are *not* using the if_vx.c driver [*] [*] The if_vx.c driver is broken for the Alpha, and is marked so by this patch. Before committing this, I plan to first fix the driver but, obviously, for now, if you are using if_vx, you won't be able to help with testing. :-( To test the patch: apply, build, reboot, do network-related things, check stats with `netstat -m', etc. For those looking at the code: Finally, a few things should be noted about the code itself (if you're just helping test, feel free to skip this part): - I disabled mbtypes[] related statistics _FOR NOW_. This is because if I were to presently enable them, I wouldn't be able to consistently update them (unless I do it atomic()ally, which is not so good for overall performance). I plan to re-enable them later on, but would prefer to wait and go over them (perhaps clean them up - add/remove types as needed - many are if 0'd anyway) rather than rush and waste time doing it now. - The patch is big. sys/mbuf.h includes need to also #include <sys/malloc.h> _BEFORE_ because sys/mbuf.h requires MALLOC_DECLARE() to be defined. - counters for m_ext objects are now all malloc()ed. This will likely eventually change for what concerns clusters (I am looking at storing the cluster counter in the cluster 2 region itself). For other object types, I plan to leave malloc() as the standard allocator for the counters, seeing as how the external objects are not allocated in a PCPU fashion anyway. That's it! This patch also sets up the way to more mbuf-related cleanups (i.e. obvious ones like merging uipc_mbuf.c code with uipc_mbuf2.c code, and ridding ourselves of the latter, etc.). It also moves a bundle of mbuf related things out of sys/conf/param.c and into subr_mbuf.c, where they will now belong. :-) Best Regards and PLEASE help test (especially if you have alpha hardware!!!), -- Bosko Milekic bmilekic@technokratis.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010613010744.A4083>