print_func helpers cleanup

The trace_printk doesn't work well with the existing helpers for the poor-mans
ftrace, but this change makes it a little easier to use.

If you want to use trace_printk, change the main print line to trace_, remove
the trailing \n, and comment out __print_hdr.
VFS: superblock init can handle d_ops

Passing 0 for the parent won't work if we actually want to use dentry ops for
the qstr building (d_hash).
VFS: use a proper hash function

Every dentry was getting 0xcafebabe for its hash value.  That put them all in
the same bucket in the dentry cache.  That made dcache lookups cost
O(nr_files_in_vfs), which was making opens (or any path lookup) take a long
time once we put the Go tree in KFS.  This even affected 9ns lookups, since
those check the VFS before trying 9ns.
VFS: only lookup once

Path lookups were looking up twice on failure, optimisticly assuming we'd want
to O_CREAT(E) too.

This isn't a huge deal.  It was more of a problem when our path lookups were
buggy and took 20usec.  Then the extra lookup was expensive.
82563: fixes TX overrun/replenish bug

When replenish was called without being allowed to sleep, it could bail out of
its loop early and fail to update the RDT (both ctlr and HW).  If it bails out
after having replenished some buffers, the RDT no longer matches where block
pointers should/should not be.

For reference, RDT points to an empty buffer (bp = 0).  RDH points to the first
full one.  Replenish will fill up to one slot prior to RDH, so that the queue
is full when there is one empty spot at RDH - 1.
Crank up the READSTR buffer a bit

READSTR is the size of a buffer used by some devices when asked to snprintf a
bunch of its details.  ether->ifstats was a big user.

The old size wasn't enough for some drivers (82563), so results from catting
the ifstats would be truncated.
82563: faster booting

I don't know if we need to wait 10 seconds for the reset.  It adds about 40 sec
to c89's boot time.
Printx commands (off by default)

A common tool I use is to printk, or now even trace_printk, to debug something.
But you don't always want the printing on, due to massive amounts of printing
under certain circumstances.

Invariably, I'd make a throw-away function that I would kfunc to toggle the
printing on and off.  I already do something similar with the poor-mans
ftrace/spatch.

"printx" is the term for this debugging style printing, and it can be turned on
and off.  There is a monitor command (px) that toggles it.  And just for fun
(and profit) there's a Kprof file to control it too (kprintx).

$ echo on > /prof/kprintx (once #K is attached).

The 'x' comes from "xme", which is the name of the one-off kfunc function I
usually use for debugging.

The default value is off.  The poor-mans ftrace uses printx_on as well, so if
you want the tracing on, you'll need to turn it on manually.  This is a change,
but a good one.
82536: fixes ktask names

All of the ktasks (l, r, and t) were using the same char *name, so they all
were named whatever the last ktask was.  In this case, the tproc.

This somewhat perpetuates the "ktask does not make a copy" crap.  Though I just
don't want to put another string blob in the kthread struct right now.
Fixes gross stack consumers

Whenever we call etherbind(), we run off the bottom of a 4KB stack.  Sometimes
the canary catches it, if a clobber happened to trigger it.  Other times, it
seems fine.  And yet others, the machine locks up.  The major stack consumers
were the dials/calls and their huge strings.

If this breaks your ifconfig, let me know.

You should be able to run without LARGE_KSTACKS now.