-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
2106 lines (1450 loc) · 57.7 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
OS/161 was written by David A. Holland, with contributions from
Amos Blackman
Alexandra Fedorova
Ada T. Lim
Georgi Matev
Jay Moorthi
Geoffrey Werner-Allen
Additional small patches and bug reports have been contributed by
various other people, all of whom are (hopefully) listed below.
------------------------------------------------------------
OS/161 2.0.4 not released yet
------------------------------
20170426 dholland in sfs-jphys, from Noah Golowich
- also initialize jp_oldestjblock.
20170425 dholland in sfs-jphys, from Noah Golowich
- initialize jp_firstlsns properly in sfs_jphys_loadup; otherwise a
flushall before writing any records causes sfs_jphys_flush to
overrun onto the head journal block and assert.
20170425 dholland in sfs-jphys, from Michael Colavita
- Fix missing sfs_unlock_freemap on error paths in reclaim.
OS/161 2.0.3 released 20160124
------------------------------
20170124 dholland in base
- Remove obsolete, redundant, or not useful test programs:
guzzle (same as hog)
kitchen (equivalent to multiexec -n 4 sink)
sink (same as conman)
sty (equivalent to multiexec -n 6 hog)
quinthuge (offers little over triplehuge, can be done with multiexec)
quintmat, quintsort (ditto)
20170124 dholland in buffercache, reported by Richard Cho
- Disable assertions about dirty_buffers_count at the top of both
sync_old_buffers and sync_lru_buffers. Because the syncer runs
these functions in pairs (the order depending on the syncer mode)
given a sufficiently lopsided workload and/or a small enough
cache and/or a slow enough application, the first one might write
out all the dirty buffers. Then the assertion isn't true any more.
This was seen running psort on the journaling solution set in
768K of RAM, where it thrashes terribly on the swap disk and runs
at a crawl.
20170118 dholland in base
- Make -g -Og the flags when "debug" is enabled in a kernel config
(which it is in the non-OPT ones) and add an additional kernel
config verb "debugonly" to get just -g in case that becomes
necessary. This should significantly improve the output code
quality from gcc without compromising debugging. (However, gcc
being gcc, it also sometimes leads to additional spurious
warnings that don't occur with either -g or -O2.)
20170118 dholland in base
- Add a MI mainbus_debugger() function that goes through the right
MD paths to trigger the debugger hook in the ltrace device. Also
add a menu function "debug" to trigger it.
20170118 dholland in base
- Add some bits to forktest to try to catch the case where the fork
child returns from the next system call instead of from fork.
(Which is a moderately common bug, caused by races copying the
trapframe information in the kernel.)
20170118 dholland in sfslocking, subdirs
- Reserving buffers is supposed to happen before taking any vnode
locks, because it can sleep and doing that while holding vnode
locks is dangerous. In fact, the whole point of reserving buffers
is to have that sleep (when there aren't enough buffers
available) outside of all file-system-level locks. However, most
of the reserve_buffers() calls were after acquiring a vnode lock.
Now they aren't.
20170118 dholland in sfs-jphys, from Jasmine Yan
- Fix sfs_jphys_trim for the case where the new journal tail is in
the same block as the current journal head. Otherwise it
improperly believes the tail is in the last block of the journal
and stuff breaks.
20170118 dholland in sfslocking, from Jeffrey Cai
- Add missing locking on error path of sfs_balloc.
20170118 dholland in buffercache, reported by Michael Patterson
- In sfs_makeobj, once you load a vnode, dropping the vnode again
will free the inode block via reclaim, so it's wrong to do it
again explicitly.
20170117 dholland in sfslocking, subdirs
- Eliminate sfs_bfree() that takes and releases the freemap lock
itself, because that isn't safe, either in general or if trying
to do coherent transactions for recovery. If you've freed a
block, you can't unlock the freemap until whatever you're doing
is done; otherwise someone else might allocate the block you just
freed and cause you to step on them. So instead, always use
sfs_bfree_prelocked().
- Change sfs_itrunc to require that the freemap already be locked.
This also necessitates changing the lock ordering of the freemap
lock: it has to come before buffer locks for non-inode blocks.
(This was actually already true after earlier partial fixes for
this issue.) It still comes after buffer locks for inode blocks.
This potentially causes hazards when a block gets reallocated as
an inode block when it wasn't before; but problems in this regard
should be prevented by holding vnode locks.
- sfs_balloc still uses the freemap lock as a leaf, even when
holding non-inode buffers. This should be safe because such
buffers belong to specific files and one should always be holding
the vnode lock for that file, which prevents anyone else from
getting involved.
- Make sfs_bused() work if called either with or without the
freemap lock already held. This is a bit untidy but since it's
used entirely for crosschecking seems like a better choice than
passing booleans around everywhere to keep track explicitly.
- If anyone spots a problem with this logic please let me know...
20170117 dholland in base
- Add a menu command "deadlock" to intentionally deadlock.
20170117 dholland in base, from Sam Fishman
- Fix parallelvm -w so that if one of the forks fails the whole
thing doesn't wedge.
20170117 dholland in base, reported by Sam Fishman
- Don't do semfs I/O from NULL, or from/to insufficiently sized
buffers. Like the 20150615 change, except covering the rest of
the tests that use the semaphores that were doing it wrong:
multiexec, parallelvm, and schedpong.
20170117 dholland in base, from Sam Fishman
- Add assembler directives to exception-mips1.S that tell gdb how
to read trap frames correctly. Garbage-collect old stuff left
over from making it work with a (much) older version of gdb a
long time back. This also usually makes it possible to trace back
through a syscall into a userlevel process; include a gdb script
with tools for making this useful.
20170117 dholland in base
- Merge the deadlock detector into base. It was a success last year.
- Mention in the comments that the hangman hooks in locks need to
be called atomically.
20170117 dholland in base, reported by Jeffrey Cai, patch from Sam Fishman
- Fix off-by-one in tac that makes it skip the first line of files.
20170117 dholland in base, from Sam Fishman
- Make badcall's "pipe with unaligned pointer" test clean up after
itself if the operation succeeds. Otherwise it leaks fds and that
can intefere with other tests.
20170116 dholland in base, reported by Sam Fishman
- Don't allow opening an entirely empty pathname to succeed, and
don't allow success for this case in badcall either.
20170116 dholland in base, from Sasha Fedorova
- Fix write buffer size in filetest.
20160325 dholland in base
- Fix macro parenthesis bug in ROUNDUP().
20160304 dholland in base, from Sam Fishman
- Make runtest.py handle spacing in the command strings it's given.
20160216 dholland in base
- Fix spacing problems in ls -l output for large files.
20160203 dholland in base
- Expand comments attached to cpustacks[]/cputhreads[], prompted by
James Mickens.
20160125 dholland in vfslocking
- Fix vfs_swapoff/swapon in vfslocking. Failure to do so resulted
in build errors that somehow made it past release testing. This
change was issued as a standalone patch for 2.0.2.
20160125 dholland in base, from Nikhil Benesch.
- Fix stupid argument handling bug in test.py.
OS/161 2.0.2 released 20160112
------------------------------
20160112 dholland in base
- Add vfs_swapon() and vfs_swapoff() functions. These are like
vfs_mount() and vfs_unmount(), except for devices to be used for
swap. Using these instead of just opening the raw device causes
them to be tagged busy, so that accidentally using the same disk
for swap and a file system will fail.
20160112 dholland in base
- Kill off vm_tlbshootdown_all() and VM_TLBSHOOTDOWN_ALL. While
there's nothing wrong per se with doing a TLB shootdown that
invalidates all mappings, coalescing multiple pending TLB
shootdown requests into a single all-mappings request requires at
least MD logic, which the oversimplified scheme here didn't
support. In practice TLB shootdown requires synchronization, and
the coalescing scheme made it unsafe to put synchronization hooks
(that might get dropped) into struct tlbshootdown. Instead leave
behind a comment suggesting steps to take if the TLB shootdown
queue ever actually overflows in practice, which isn't that
likely.
20160112 dholland in base, reported by Sam Fishman
- In thread_make_runnable, don't send unidle IPIs to curcpu.
20160111 dholland in sfs-jphys
- Add logic so that a journal write triggered by an eviction
triggered by turning over the journal head buffer after a
(different) journal write doesn't explode as long as the
still-available journal buffer doesn't fill up.
20160111 dholland in sfs-jphys
- Add an additional #if 0'd call to sfs_getnextbuf() in
sfs_jphys_write_internal. This will need to be enabled if
flushing the journal very aggressively to avoid asserting in
sfs_advance_journal. See comments at the call site and in
sfs_advance_journal for the gory details. The call is not
enabled by default because it's been found to have adverse
effects in other circumstances.
20160111 dholland in base
- Provide some simple test automation logic, and install it in
$(OSTREE)/testscripts. It uses Python and pexpect, so provide
some suitable infrastructure for handling that.
20160111 dholland in base
- Have "make clean" in a man directory do nothing instead of failing.
20160107 dholland in base
- Don't take vfs_biglock in vnode_check(). It isn't safe (e.g. it
can deadlock when paging once you have a VM system) and the
things vnode_check() looks at are supposed to be constant fields
anyway. If they aren't actually constant because of bugs, reading
a stale or even garbage value is not going to hurt more.
20160107 dholland in deadlock-detector
- Add a deadlock detector. For now this will be supplied to
instructors as a supplementary patch, because it intrudes into
the synchronization primitives and affects what students do
there. We are planning to try it on our students this coming
semester; if that works out well, I'll probably merge it into
base.
20160107 dholland in base
- In testbin/multiexec, if fork fails partway through, continue
with the forks we got. Otherwise the subprocesses we started hang
around forever, and there's no way to kill them.
20160106 dholland in all
- New format for CHANGES that admits longer descriptions, and that
deals better with having many branches and patches.
- Merge all the branch CHANGES.* files into the main CHANGES, as
having multiple CHANGES files was never desirable.
OS/161 2.0.1 released 20150805
------------------------------
20150804 dholland in sfs-jphys
- Fix dumpsfs journal record alignment assertions.
20150804 dholland in sfs-jphys
- Reserve buffers around the slots for recovery code.
20150804 dholland in base
- Improve multiexec's error reporting.
20150804 dholland in base
- Minor fixes to frack check.
20150722 dholland in base
- Add assertions to dumbvm to check that sleeping is ok in various
contexts where real VM systems typically sleep.
20150722 dholland in base
- Initialize curcpu/curthread a bit earlier.
20150721 dholland in base
- Remove proc->p_threads[] array. Just count the number of threads
in each proc. This is enough to get going on, and it's easy for
students to add and synchronize an explicit array of threads
themselves if they want it. (It needs a sleeplock; but by that
point they'll have those. We don't out of the box though.)
20150713 dholland in base
- Make all sfs prints/panics include the volume name.
20150713 dholland in base
- Have sfsck print invalid inode type values instead of just saying
"invalid".
20150713 dholland in base
- Have forktest print ABCD instead of 1234 for clarity.
20150713 dholland in base
- Kill off allwchans[]; in practice it isn't useful.
20150710 dholland in base
- Split out the pieces of sfs_sync for reusability.
20150708 dholland in buffercache
- Avoid syncer livelock working the LRU list.
20150707 dholland in sfs-jphys
- Rearrange sfs_jphys_flushforjournalblock logic.
20150706 dholland in sfs-jphys
- Add code to check for journal head/tail overruns.
20150706 dholland in base
- Add support for new sys161 profiler control registers.
20150625 dholland in sfs-jphys, from Jonah Kallenbach
- Add missing decl of sfs_jphys_client_recname.
20150625 dholland in base
- Fix frack "writetruncseq" workload.
20150605 dholland in base
- Have semfs update uio_offset; increases robustness.
- Don't do semfs I/O from NULL. It causes consternation.
20150605 dholland in base
- Warn that copying threadlist structures breaks them.
20150605 dholland in base
- New test: schedpong, an actual scheduler workload, now possible
because we have semfs.
20150603 dholland in base
- Add example unit tests for the provided semaphores.
20150603 dholland in base
- In panic, drop to the debugger before sync, not after. Otherwise,
the sync complicates postmortem analysis. Also, for file system
panics it often deadlocks.
20150603 dholland in base
- Make "dumpsfs -i N -a image" work.
20150603 dholland in base
- Make kernel config script reject duplicate .o names.
20150603 dholland in base
- Improve the printouts of testbin/badcall.
- Improve printouts of testbin/crash for legibility.
20150528 dholland in base
- Comment up testbin/frack/check.c. Badly needed.
20150527 dholland in base, from Keno Fischer.
- Fix various minor bugs found by clang-static-analyzer.
20150527 dholland in base
- Make the skeleton userland stdio less needlessly dumb.
20150527 dholland in base
- New kernel menu test: at2; tests arrays > 1 page.
20150519 dholland in base
- New test: bigfork, intended mostly for performance testing.
20150513 dholland in base
- Fix "unexpected EOF" bug in frack check.
- Fix flagrantly wrong assert in frack check.
- Fix fd leaks in frack check.
20150428 dholland in base, from Sam Fishman and Michelle Deng.
- Fix error-path assertions in sfs_domount.
20150422 dholland in base
- Re-enable ftruncate in frack by default.
20150417 dholland in base, from Nikhil Benesch.
- Fix configure test for ntohll.
20150417 dholland in base, from Nikhil Benesch.
- Use printf instead of echo -n in shell scripts; it seems that
even in 2015 Mac OS X comes with a broken echo, and we don't care
about host OSes too old to have printf in sh.
20150414 dholland in sfs-jphys
- Cleanups/clarifications from jphys code review.
20150322 dholland in base, from Anne Madoff.
- Fix typos in non-dumbvm addrspace.h.
20150322 dholland in base
- Fix some typos in comments.
20150127 dholland in sfs-jphys
- Split the container-level code (jphys) from sfs-jrec into its own
branch.
20150127 dholland in base
- Patch more Linux build problems caused by glibc bugs.
OS/161 2.0 released 20150115
----------------------------
20150113 dholland in base
- Drop to the debugger on panic.
20150113 dholland in base
- Document parallelvm -w.
20150113 dholland in base, from Katherine Flavel.
- Better man page typesetting.
20150108 dholland in base
- Fix FSOP_GETROOT signature/usage so it can fail.
20150108 dholland in base
- Add several missing man pages for testbin programs.
20150108 dholland in base
- Fix naming of semaphores in testbin/multiexec.
20150107 dholland in base
- Rename kern/malloctest.c to kmalloctest.c for clarity.
- Also change malloctest* symbols to kmalloctest*.
20140924 dholland in base
- Print the kernel build number after linking.
OS/161 1.99.08 released 20140924
--------------------------------
Consider this 2.0-RC1.
20140924 dholland in base
- Make km3 rotate object sizes as originally intended.
20140924 dholland in base
- Make frack print a visible divider when it syncs.
20140922 dholland in base
- Add /bin/tac, which uses unlinked scratch files.
20140919 dholland in base
- Allow giving testbin/bigfile the chunk size to write.
20140919 dholland in base
- Add a design doc about the structure of assignments.
20140919 dholland in base
- Make certain sfsck checks set the exit status properly.
20140918 dholland in base
- Provide general-purpose metadata I/O function in sfs.
20140916 dholland in base
- Remove size workaround in bigexec; the solution set is now fixed.
20140904 dholland in base
- Fix problem with stray symlinks in $(OSTREE)/include.
20140904 dholland in base
- Change sfs_vnode->sv_v to sv_absvn for consistency.
20140904 dholland in base
- Add bloat test; it uses all available memory rapidly.
20140904 dholland in base
- Fix testbin/crash for gcc 4.8.
20140904 dholland in base
- Make testbin/filetest do something useful if given no argv.
20140904 dholland in base
- Add sys/cdefs.h and move userland __DEAD there.
- Declare userland err* __DEAD.
20140903 dholland in base
- Simplify ram.c interface as suggested by several of my students.
20140829 dholland in base
- Add km4: a kmalloc test for multipage allocations.
20140829 dholland in base
- Add multiexec test for lots of procs in exec at once.
20140828 dholland in base
- Fix inlining for gcc 4.8, and a few other build issues.
- Tighten asm constraints for gcc 4.8.
20140825 dholland in base
- Remove DEVOP_LASTCLOSE; nothing uses it and we will never add
rewind-on-close tape devices.
- Don't fsync in sfs_lastclose; it's outdated practice.
- Remove VOP_LASTCLOSE; nothing uses it any more.
- Remove vnode open count and VOP_INC/DECOPEN.
20140825 dholland in base
- Use a separate spinlock for vnode refcounts. (Using vfs_biglock
causes sleeping while holding spinlocks.)
20140825 dholland in base
- Don't use sfs_io() for directory entries.
20140821 dholland in base
- Replace VOP_TRYSEEK with static VOP_ISSEEKABLE.
20140821 dholland in base
- Make devices check seek position validity on the fly.
20140806 dholland in base, from Anne Madoff.
- Make sfs_link reject directories.
20140730 dholland in base
- Make testbin/hog run longer.
20140729 dholland in base
- Make psort big enough to be useful as a fs test.
- Document psort's sizing knobs.
20140729 dholland in base
- Add ARRAYCOUNT() macro for static array length.
20140729 dholland in base
- Add array_preallocate().
20140729 dholland in base
- Make npages argument of alloc_kpages() unsigned.
20140729 dholland in base
- Tidy up construction/destruction of struct sfs_fs.
20140728 dholland in base
- Make sfs_read/writeblock take the buffer length. (One should
always do that, even if it's really the same everywhere.)
20140728 dholland in base
- struct sfs_super -> struct sfs_superblock.
20140728 dholland in base
- Adjust SFS code to make it more readily extensible.
20140728 dholland in base
- Rename a bunch of the SFS constants for clarity.
- Always call SFS's free block bitmap the "freemap".
20140725 dholland in base
- Add usemtest for checking the semfs semaphores.
20140724 dholland in base
- Make failed SFS writes not increase the file size.
20140724 dholland in base
- Distinguish MIPS 512M RAM limit and LAMEbus 508M limit.
20140722 dholland in base
- sfs_dir -> sfs_direntry, by popular demand.
20140722 dholland in base
- Add some notes about the atomicity of dup2().
20140722 dholland in base, from Jared Pochtar.
- Add notes about the limits of syscall atomicity in multithreaded
processes.
20140722 dholland in base
- Add redirect test to check stdin/stdout redirection.
20140722 dholland in base
- Add bigseek test for checking seeks beyond 2^32.
- Fix emufs handling of seek positions beyond 2^32.
20140721 dholland in base
- Add file open mode checks to badcall.
20140721 dholland in base
- Fix interaction of kmalloc guards and kmalloc labels.
20140721 dholland in base
- Be more conservative about panic on stray interrupt.
20140721 dholland in base
- Fix userland build to not belch on removed .h files.
- Fix userland build to not rebuild unnecessarily.
20140721 dholland in base
- In badcall, don't shout if mkdir isn't implemented.
20140717 dholland in base
- Fix misleading comments and variable names in proc.c.
20140716 dholland in base
- Add -w option to parallelvm to wait for forking.
20140716 dholland in base
- Replace a busywait in badcall with the new user semaphores.
20140716 dholland in base
- Provide userlevel semaphores via semfs filesystem. Open
"sem:<name>", then use read to P() and write to V().
20140716 dholland in base
- Move the just-fail vnode op stubs to VFS.
20140710 dholland in base
- Added new test program: sbrktest.
20140710 dholland in base
- Ship qsort() in libc, not in sfsck's compat code.
- Make the libc qsort() actually quicksort.
20140709 dholland in base
- SWAP{S,L,LL} -> SWAP{16,32,64} in sfs tools.
20140709 dholland in base
- Fix reversed found/expected printout in frack check.
20140518 dholland in base
- Fix embarrasing sort bugs in native sfsck.
20140430 dholland in base
- Add poisondisk tool for testing file system recovery.
20140428 dholland in base
- Add hostcompat logic for 64-bit byte-swapping.
20140417 dholland in base
- Fix testbin/zero to use page-sized sbrk calls.
20140415 dholland in base
- Rewrite dumpsfs and make it much more useful.
20140414 dholland in base
- Fix missing initialization of cpu->c_spinlocks.
20140410 dholland in base
- Fix bug in malloc changes. Add assertion to malloctest.
20140326 dholland in base
- Make userlevel malloc allocate in page-sized chunks.
20140326 dholland in base
- Fix the (unused) 64-bit userlevel malloc code.
20140314 dholland in base
- Make forktest show how much output is expected.
20140220 dholland in base
- Add new sy4 test for CVs.
20140211 dholland in base
- Tidy some logic in thread_make_runnable.
20140211 dholland in base, from Anne Madoff.
- Mark threads READY when waking them.
20140201 dholland in base, reported by Emmet Jao.
- Fix some outdated comments.
20140128 dholland in base
- Fix default OSTREE in configure script.
OS/161 1.99.07 released 20140123
--------------------------------
20140123 dholland in base
- Add "frack" test (filesystem recover and check).
20140123 dholland in base
- Add factorial test that computes using execv.
20140123 dholland in base
- Add fs6 test that creates lots of small files.
20140122 dholland in base
- Mark enter_new_process and related code __DEAD.
20140122 dholland in base
- Make the semaphore counter unsigned.
20140122 dholland in base
- When kmalloc gets a page, assert that it's aligned.
20140122 dholland in base, from Christian Anderson.
- Fix error leak in sfs_balloc.
20140122 dholland in base
- Use ssize_t and pid_t more in unistd.h.
20140122 dholland in base
- Add discussion of ARG_MAX to execv man page.
20140122 dholland in base
- Add missing <stdbool.h> for userland.
20140122 dholland in base
- Added sparsefile test program for making sparse files.
20140122 dholland in base
- splx() needs to work before curcpu/curthread exists.
20140122 dholland in base
- Clarify that proc_remthread requires splhigh.
20140115 dholland in base
- Remove VOP_INIT/CLEANUP macros. Use vnode_init/cleanup.
20140115 dholland in base
- Make device open/close eachopen/lastclose like vnodes.
20140115 dholland in base
- Move vfs-level device ops to an ops table struct.
20140115 dholland in base
- Clarify/correct comments pertaining to O_APPEND.
20140114 dholland in base
- Reorganize SFS sources.
20131112 dholland in base
- Reorganize sfsck sources; rework and improve sfsck.
- In SFS, always provide N{,D,T}INDIRECT macros.
20131110 dholland in base
- Don't use uninitialized file permissions in badcall.
20131110 dholland in base
- Provide __UNUSED along with __PF and __DEAD.
20131108 dholland in base
- Rearrange (and fix) hacks for _exit() returning. It now faults on
"0xeeeee00f" if it can't exit.
20131107 dholland in base
- Handle TLB pipeline hazards correctly.
20131107 dholland in base
- Add some sample/experimental gdb scripts.
20131107 dholland in base
- Make the console polling logic not use internal vars.
20131107 dholland in base
- Have wchan_sleep assert if holding extra spinlocks.
20131107 dholland in base
- Don't use (our) assignment numbers for kernel configs.
20131107 dholland in base
- Remove the synch problems, and their support framework, from the
base system. Ship this material as a patch instead.
20131107 dholland in base
- Rename src/user -> src/userland. Seems to be the best choice
among a number of unappealing alternatives.
20131105 dholland in base
- Disallow EINVAL for "no such process" in badcall.
20131105 dholland in base
- Clean up sh's use of exit codes.
20131105 dholland in base
- Have testbin/crash check the signal numbers produced.
20131105 dholland in base
- Create an array of all wchans for debug purposes.
20131105 dholland in base
- Rearranged wchan API to make wchans more like CVs.
20131105 dholland in base
- Print the processor ID and version correctly.
20131105 dholland in base
- Fix boot on pre-multiprocessor System/161.
20131105 dholland in base
- Parallelize the kernel depend logic.
20131104 dholland in base
- Add and use memory barrier ops header. Minor impact.
20131104 dholland in base
- Rename sfs_inode to sfs_dinode.
20131101 dholland in base
- Edit and revise the man pages. Add some missing ones.
20131101 dholland in base
- Update the docs and specs for waitpid.
20131030 dholland in base
- Use execvp() in sh. Don't have to type /bin/cat now.
20131030 dholland in base
- Provide getenv() and execvp() in libc.
20131030 dholland in base
- enter_user_process() now accepts an environ pointer.
20131030 dholland in base
- Add quinthuge, quintmat, quintsort tests.
20131030 dholland in base
- Added a libtest with common stuff for testbin/.
20131030 dholland in base
- Rewrite the .depend-munging script to be readable.
20131030 dholland in base
- Use ENOSYS (standard) instead of EUNIMP (which isn't).
20131030 dholland in base
- Fix badcall to expect wait with null status to succeed.
20131030 dholland in base
- Don't use unportable function casts in sfs.
20131029 dholland in base
- Add more kmalloc debugging modes and checks.
- Add a memory leak detection mode to kmalloc.
20131028 dholland in base
- Move the whole-filesystem ops to an ops table struct.
20131028 dholland in base
- Use designated initializers for the vnode ops tables.
20131028 dholland in base
- Fix the way thread_panic zaps the run queue.
20131028 dholland in base
- Move memset.c to common/ for use in the kernel.
20131028 dholland in base
- Mark thread_exit() __DEAD.
20131028 dholland in base
- Fix addrspace handling in proc_destroy().
20131025 dholland in base
- Add another kmalloc test (km3), this one of variable size.
- Improve kmalloc to support larger kernel heaps.
20131025 dholland in base
- Make printf accept %zd/%zu for size_t.
20130531 dholland in base
- Add tests for the threadlist code.
20130531 dholland in base, from Steven Talbot.
- Fix threadlist iterators again.
20130531 dholland in base
- Do thread migration *before* running the scheduler.
20130531 dholland in base
- Add some more assertions to kfree.
20130531 dholland in base
- Make badcall understand wait-for-any waitpid().
20130531 dholland in base
- Fix depends bug in os161.hostcompile.mk.
- Put .depend files in build tree where they belong.
- Provide a predepend: hook for makefiles.
20130531 dholland in base
- Remove getinterval(); replace with timespec arithmetic.
20130531 dholland in base
- Use struct timespec inside the kernel.
20130531 dholland in base
- Move kern/startup -> kern/main, like it was in 1.x.
20130531 dholland in base
- Add "zero" test; checks if the VM system zeros pages.
20130531 dholland in base
- Change as_activate() to always activate curproc's AS.
20130531 dholland in base
- Provide both thread and process structures by default.
20130530 dholland in base
- Fix the scheme for probing LAMEbus device versions; don't require
lockstep upgrades for System/161 changes.
20130530 dholland in base, from Saagar Deshpande.
- Fix typo in comment.
20130530 dholland in base
- Add comment warning against borrowing from dumbvm.
20130530 dholland in base
- Increase DUMBVM_STACKPAGES so 64K argv blocks will fit.
20130514 dholland in base
- Teach sfsck to handle dirs with invalid inode numbers.
20130503 dholland in base, reported by multiple students.
- Fix another problem in the inode array in sfsck.
20130429 dholland in base
- Fix sfsck bitmap-checking problem.
20130311 dholland in base
- Declare panic() and badassert() noreturn.
20130308 dholland in base, found by George Kulakowski.
- Fix fd leak in badcall.
20130306 dholland in base, found by David Palmer.
- Fix off_t printing in randcall.
20110427 dholland in base, from Andy Brody.
- Fix typo in badcall.
20110425 dholland in base, found by Jim Danz.
- Fix catastrophic bug in sfsck.
20110420 dholland in base
- Add new bigexec test for checking large argvs.
20110319 dholland in base
- Use va_copy() in __printf. (At least if available.)
20110223 dholland in base, from Amy Tai.
- array.h needs cdefs.h and lib.h.
20110127 dholland in base
- Fix host-psort build problem caused by glibc on Linux.
OS/161 1.99.06 released 20110126
--------------------------------
20110126 dholland in base
- Fix some parallel build problems.
20110126 dholland in base
- Rename fs5 test to "long stress test".
20110126 dholland in base
- Clarify that struct tlbshootdown is a placeholder.
20110126 dholland in base
- Fix randcall makefile to put calls.c in the build dir.
20110126 dholland in base
- VOP_OPEN -> VOP_EACHOPEN; VOP_CLOSE -> VOP_LASTCLOSE.
20110126 dholland in base
- Name struct spinlock's members splk_*, not lk_*.
20110126 dholland in base
- sfs_fs.c -> sfs_fsops.c, sfs_vnode.c -> sfs_vnops.c
20100819 dholland in base
- Fix the stray console IRQs problem properly. This requires
System/161 1.99.05 or higher.
20100819 dholland in base
- Revert start/endpolling hack for stray console IRQs. (But keep
the code for masking interrupts.)
20100819 dholland in base
- Don't leave the IPI spinlock dangling on a panic IPI.
OS/161 1.99.05 released 20100108
--------------------------------
20100108 dholland in base
- Don't cut corners with relocs in mips-exception1.S.
20100108 dholland in base
- Rearrange how curthread/curcpu get defined, so the mips gdb can
see curthread.
20100108 dholland in base
- Disable BSS zeroing in loadelf, because VM systems should already
provide zeroed pages. Make dumbvm do so.
20100108 dholland in base
- Add ASST3-OPT optimizing config.
20100108 dholland in base
- Add the shell's design doc to design/.
- Add the usermalloc design doc to design/.
20100108 dholland in base
- Fix outdated comment in start.S.
20100108 dholland in base