Crash has some support for per-cpu variables, but it really only works for static variables. My idea is that you should be able to take a per-cpu pointer and see the formatted data. The syntax should allow to specify a CPU or do it for all:
crash> percpu $CPU <type_name> <address>
This will greatly enhance the usefulness of QEMU virtual serial ports, because the Linux kernel interprets a break on the serial console as a SysRq, but there is currently no way to pass this signal over a pseudo-terminal.
The kdump package can now use SMP and multiple targets with constant memory requirements. The goal of this project is to find the optimum parameters for dumping a very large machine (SAP can give me access to 6TB, SGI is able to test with 64 TB).
AFAIK, wireshark is the best Linux tool for analyzing network traffic. Primarily intended for Ethernet networks, there is now also support for very different protocols (e.g. USB). Sadly, there is no support for fibre channel, most likely because there is even no infrastructure in the kernel.
I doubt I could write the complete stack within just one week. The result should be a clear plan of what needs to be done on each level and a proof-of-concept implementation of at least some parts.
The kdump plumbing is implemented as a dracut module. The original intention was to reuse the logic that dracut uses to deal with storage and network, but it turns out that kdump needs are often very different, so a lot of time is spent on avoiding dracut features that are undesirable.