profiling and wchar_t. Profiled libraries will shrink.
tm.h:
Our wchar_t is int, not unsigned short.
Always link statically if profiling.
Define all the SPECs together.
final.c, tm.h:
Don't emit unused profiling code and data.
aux-output.c:
Always preserve the PIC register if profiling.
aux-output.c, tm.h:
Implement FUNCTION_PROFILER_EPILOGUE (currently not used).
New:
tm.h:
Set the target defaults in the correct way.
there is an extra target now for creating a 1.2MB floppy at the cost
of a few of the doc files. Just do a `make small.floppies' instead of
a `make floppies' to make a small set.
When we get an EN8 response while we're already sending the file using
the i protocol, this can happen:
In send.c, flocal_send_await_reply() is called. This function calls
flocal_send_fail() to process the aborted transfer. After this, we run
into the branch that calls ffileseekend() to force the end of the
actual transfer.
Now flocal_send_fail() frees qtrans, but qtrans is still used later!
I propose to fix this by moving the usfree_send(qtrans) out of
flocal_send_fail(), as in the patch I append to this mail.
...
I have found a race condition in the uucp 1.05 code. The typical result
is that the connections mysteriously fails with "conversation failed",
even while all files were transmitted. This is the problem:
At least for the i protocol, the code to send a packet can receive and
process packets after sending.
In several places in the code, we send a command and then prepare to
receive an answer.
Now the answer might already arrive during the call that sends the
command while we aren't ready to process it.
The general solution is IMHO first to do all preparations and only as a
last step to send out the command.
Reviewed by: John Dyson
Submitted by: Johannes Stille
MKINIT line that doesn't have a comment on it (we have at least two).
This mkinit program was written by someone who obviously doesn't believe
in defensive programming. :-( There's a LOT of work that needs to be done
on this thing. :-( :-( :-(
Enabled via REL2_1.
Added support for doing object collapses "on the fly". Enabled via REL2_1a.
Improved object collapses so that they can happen in more cases. Improved
sensing of modified pages to fix an apparant race condition and improve
clustered pageout opportunities. Fixed an "oops" with not restarting page
scan after a potential block in vm_pageout_clean() (not doing this can result
in strange behavior in some cases).
Submitted by: John Dyson & David Greenman
process output dialogs (or any way to stop the output, for that matter!).
2. Install the very first cut of my bininst stage6 script. VERY rough,
it doesn't actually do anything just yet, but I need to make sure that
it's at least executed for the moment.
main.c sanitize the logic of what we do when:
if(getpid()!=1) do stage0 & stage1 (very useful actually)
else if (floppy-marker-file is there) stage0-2, reboot
else stage3-5
for all reasonable HZ's. HZ > 1000 doesn't work because of sloppy
conversions in hzto() (division by (tick / 1000) == 0). This was
fixed in 1.1.5.
Eliminate some extern declarations by including the appropriate header
files that now contain appropriate declarations.
find it in /bin. This is something of a kludge, I know, but consider
my limited alternatives: I can't make this an execvp() without making
people scream that I introduced a failure point or slowed down pwd,
and I can't make it an optional macro since crunch doesn't let you pass
arbitrary command-line args to the build of one of its crunch-ees.
This is the simplest, if not the nicest looking, solution I could come up
with.
tsleep()). Try `dd if=/dev/zero of=/dev/pcaudio bs=640k count=1'. The
write takes a few hundred seconds to drain, and if it is killed by a
signal, it still takes a few hundred seconds to drain and all of those
seconds are spent busy-waiting.
Clean up includes and declarations. Remove bogus casts of args to
timeout functions.
doesn't have to calculate it every call.
Rename `timer0_prescale' to `timer0_prescaler_count' and maintain it
correctly. Previously we lost a few 8253 cycles for every "prescaled"
clock interrupt, and the lossage grows rapidly at 16 KHz. Now we
only lose a few cycles for every standard clock interrupt.
Rename `*_divisor' to `*_max_count'.
Do the calculation of TIMER_DIV(rate) only once instead of 3 times each
time the rate is changed.
Don't allow preposterously large interrupt rates. Bug fixes elsewhere
should allow the system to survive rates that saturate the system, however.
Clean up declarations.
Include <machine/clock.h> to check our own declarations.
outside the critical region.
Make it work with 2.0. It wasn't designed to be called at splclock().
Make it work with prescaling. The overflow threshold was bogus.
Make it work for any HZ. Side effect of fixing prescaling.
Speed it up. Allocate registers better. Reduce multiplication and
division to multiplication and a shift. Speed is now 5-6 usec on a
486DX/33, was about 3 usec more.
Optimize for the non-pentium case. The pentium code got moved around
a bit and hasn't been tested.
Change #include's to 2.0 style.
for it is incomplete and buggy. There is no problem unless Xintr0()
is reentered or should be reentered, but high clock interrupt
frequencies for pcaudio cause Xintr0() to be reentered (or clock
ticks to be lost when Xintr0() should have been reentered but
wasn't), and we lose little by delaying the call to softclock().
Move declarations related to the clock driver to clock.h.
Move declarations related to the npx driver to npx.h.
Clean up the remaining declarations.
From: Chris Torek <torek@bsdi.com>
Here is a semi-official patch (apply to /usr/src/lib/libc/stdio/fseek.c,
rebuild libc, install). The current code fails when the seek:
- is optimized, and
- is to just past the end of the block currently in the buffer, and
- is followed by another seek with no intervening read operation, and
- the destination of subsequent seek is within the block left in the
buffer (seeking to the beginning of a block does not force a read,
so the buffer still contains the previous block)
so it is indeed rather obscure.
I may have a different `final' fix, as this one `loses' the buffer
contents on a seek that goes just past the end of the current block.
[Footnote: seeks are optimized only on read-only opens of regular
files that are buffered by the file's optimal I/O size. This is
what you get with fopen(path, "r") and no call to setvbuf().]
Obtained from: [ BSDI mailing list ]