Ben Pfaff [Thu, 4 Dec 2008 05:42:42 +0000 (21:42 -0800)]
Remove MIT copyright notice and license.
Pintos used to contain a loader and I/O functions derived from MIT
code, but this has now been entirely eliminated, so there is no
longer any reason to retain the MIT copyright notice or license.
Ben Pfaff [Thu, 4 Dec 2008 05:41:18 +0000 (21:41 -0800)]
Rewrite the I/O port code.
The contents of these functions was derived from code used in the
Massachusetts Institute of Technology's 6.828 advanced operating
systems course.
I deleted the contents of these functions and then rewrote them from
scratch without reference to the earlier code, working only from the
function comments (which I wrote earlier).
Godmar Back [Fri, 14 Nov 2008 06:13:54 +0000 (01:13 -0500)]
added section "Accessing User Memory", including explanation of why
pinning is necessary
added FAQ for why stack growth may cause page faults above stack pointer
minor edits to other sections
Godmar Back [Fri, 14 Nov 2008 02:30:41 +0000 (21:30 -0500)]
fixed backtrace to work with -O (now conforms to
http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html )
Godmar Back [Thu, 13 Nov 2008 02:17:21 +0000 (21:17 -0500)]
added btthreadall to dump all threads
added loadusersymbols to load user symbols from file
updated documentation to reflect behavior of qemu's and bochs's gdbstubs
Ben Pfaff [Wed, 12 Nov 2008 06:19:01 +0000 (22:19 -0800)]
Implement a proper block layer with partition support.
This is in preparation for introducing new block devices, in
particular USB storage-based block devices so that Pintos can boot
from USB memory sticks on notebook and desktop PCs.
This block layer was inspired by one from Anthony Romano
<chz@vt.edu> but it has been extensively (perhaps entirely) rewritten.
Thus, bugs must certainly be blamed on the committer.
Ben Pfaff [Mon, 10 Nov 2008 04:07:40 +0000 (20:07 -0800)]
Make backtraces slightly more reliable.
We now ignore pointers that are not null but still clearly wild.
We could check that there's really a valid PDE and PTE (I think Linux
does this) but it would take more code and be ugly.
Ben Pfaff [Mon, 10 Nov 2008 04:02:19 +0000 (20:02 -0800)]
Add PC speaker driver and connect it to '\a' in the VGA console.
Based on code from Anthony Romano <chz@vt.edu> but with extensive changes.
Ben Pfaff [Sun, 9 Nov 2008 23:56:05 +0000 (15:56 -0800)]
Rename ram_pages to init_ram_pages.
This makes it conform to the Pintos convention that a global symbol name
begin with its module's name.
Ben Pfaff [Mon, 10 Nov 2008 00:19:48 +0000 (16:19 -0800)]
Get rid of power_off_when_done global variable.
This global variable was not named according to the convention that a
global variable name start with its module name. Furthermore, its usage
was somewhat scattered across the source tree.
This commit introduces new functions shutdown() and shutdown_configure()
to improve the situation.
Ben Pfaff [Sun, 9 Nov 2008 23:51:01 +0000 (15:51 -0800)]
Remove prototypes for removed functions power_off(), reboot().
Ben Pfaff [Sun, 9 Nov 2008 23:42:02 +0000 (15:42 -0800)]
Ignore files produced by "makeinfo".
Ben Pfaff [Sun, 9 Nov 2008 23:40:18 +0000 (15:40 -0800)]
Mark shutdown_reboot() and shutdown_power_off() as NO_RETURN.
Also, make shutdown_reboot() actually behave that way, by trying to reboot
forever instead of giving up after some number of tries.
Ben Pfaff [Sun, 9 Nov 2008 23:21:21 +0000 (15:21 -0800)]
Allow Bochs users to reboot by clicking the "user" button.
The "user_shortcut" Bochs option allows specifying a key combination to
send to the VM when the user clicks on the "user" button in the Bochs
headerbar.
From Godmar, crossported from his usb-integration-aug08 branch.
Ben Pfaff [Sun, 9 Nov 2008 23:22:35 +0000 (15:22 -0800)]
Terminate the backtrace that debug_backtrace() would output.
From Godmar, crossported from his usb-integration-aug08 branch.
Ben Pfaff [Sun, 9 Nov 2008 23:22:25 +0000 (15:22 -0800)]
Use 9600 bps for Pintos serial, to match the speed used by the loader.
It is important that Pintos and its loader use the same serial speed, so
that a terminal program connected to a serial port can be set to a sane
speed. The ideal choice would be 115200 bps, for maximum speed, but the
Pintos loader uses the BIOS to do serial output, and the BIOS supports a
maximum speed of 9600 bps.
From Godmar, crossported from his usb-integration-aug08 branch.
Ben Pfaff [Sun, 9 Nov 2008 19:41:18 +0000 (11:41 -0800)]
Move reboot() and power_off() to new file, and rename to fit convention.
Godmar Back [Sat, 8 Nov 2008 04:48:13 +0000 (23:48 -0500)]
added note regarding console lock
Ben Pfaff [Sat, 8 Nov 2008 01:23:09 +0000 (17:23 -0800)]
Correct comment describing list_remove() behavior.
Thanks to Godmar for pointing out the problem.
Ben Pfaff [Sat, 8 Nov 2008 01:12:23 +0000 (17:12 -0800)]
Add FAQ item to explain doubled test names in output.
Suggested by Godmar.
Ben Pfaff [Fri, 7 Nov 2008 05:54:04 +0000 (21:54 -0800)]
Eliminate user_page_limit global symbol.
The name "user_page_limit" did not follow the naming convention, which
stated that its name should start with palloc_ since it is defined in
palloc.c. But it was only used in one function, so it was better off
as a function parameter anyhow.
Found by Godmar with his process-linker-map.pl.
Ben Pfaff [Fri, 7 Nov 2008 05:31:30 +0000 (21:31 -0800)]
Don't make interrupt stubs global symbols.
The stubs are only referenced within intr-stubs.S so there is no reason
for them to be exported.
Found with Godmar's process-linker-map.pl.
Ben Pfaff [Fri, 7 Nov 2008 05:19:34 +0000 (21:19 -0800)]
Rename base_page_dir to init_page_dir.
This makes its name fit the convention that the file name is used as
a prefix for global symbol names.
Found by Godmar with his process-linker-map.pl script.
Ben Pfaff [Fri, 7 Nov 2008 05:55:33 +0000 (21:55 -0800)]
Rename schedule_tail() to thread_schedule_tail().
This makes its name fit the convention that the file name is used as
a prefix for global symbol names.
Found by Godmar with his process-linker-map.pl script.
Ben Pfaff [Fri, 7 Nov 2008 05:12:12 +0000 (21:12 -0800)]
Make kernel_pool, user_pool static, since they are used only in palloc.c
Found by Godmar with his process-linker-map.pl.
Ben Pfaff [Fri, 7 Nov 2008 05:11:26 +0000 (21:11 -0800)]
Rename .cvsignore files to .gitignore.
Godmar Back [Wed, 5 Nov 2008 04:53:26 +0000 (23:53 -0500)]
removed trailing whitespace
Godmar Back [Wed, 5 Nov 2008 04:31:45 +0000 (23:31 -0500)]
clarified specification for wait() system call
Godmar Back [Fri, 17 Oct 2008 03:26:23 +0000 (03:26 +0000)]
added documentation for thread_foreach functions
Ben Pfaff [Thu, 16 Oct 2008 22:49:48 +0000 (22:49 +0000)]
Always make the scratch disk an even multiple of a cylinder in size.
The pintos script tried to do so before but "print" and "syswrite"
are buffered differently and interfere with one another.
Thanks to Karan Misra <kmisra@stanford.edu> for pointing out the
problem and confirming the solution.
Godmar Back [Wed, 27 Aug 2008 16:52:04 +0000 (16:52 +0000)]
- added thread_foreach
- added debug_backtrace_all
- updated P1 solution to take advantage of this new code
Godmar Back [Wed, 27 Aug 2008 14:34:24 +0000 (14:34 +0000)]
removed 'address' option for Bochs.
It makes Bochs > 2.2.6 fail with "[MEM0 ] ROM: System BIOS must end at 0xfffff"
and, according to http://www.nabble.com/Strange-error-message-when-bringing-up-a-CVS-build-td7532679.html
isn't even necessary for 2.2.6
Godmar Back [Wed, 27 Aug 2008 11:50:49 +0000 (11:50 +0000)]
cleaned up comments for reboot code and adopted GNU coding standards
Ben Pfaff [Tue, 26 Aug 2008 03:05:05 +0000 (03:05 +0000)]
Reboot when Ctrl+Alt+Del is pressed.
Suggested by Anthony Romano.
Implementation with assistance from and reviewed by Godmar Back.
Ben Pfaff [Mon, 25 Aug 2008 03:50:49 +0000 (03:50 +0000)]
Improve comments.
Suggested by Godmar Back.
Ben Pfaff [Sun, 24 Aug 2008 17:16:32 +0000 (17:16 +0000)]
New option -r to reboot the VM after actions are complete.
From Godmar Back, with minor tweaks.
Ben Pfaff [Sun, 24 Aug 2008 04:31:40 +0000 (04:31 +0000)]
Use standard POSIX "ustar" format for the scratch disk.
This should make it easier to work with scratch disks directly,
instead of through the "pintos" script.
With naming suggestion from Godmar Back.
Ben Pfaff [Sat, 23 Aug 2008 03:52:54 +0000 (03:52 +0000)]
RTC support.
Adapted from Anthony Romano's patch with the following changes:
* Style adjusted to fit rest of Pintos.
* Don't modify the RTC registers. It shouldn't be necessary.
We shouldn't need any initialization in fact.
* Drop rtc_set_time stub.
* Do handle time advancing while reading the RTC registers in
rtc_get_time, using the strategy from Linux.
* Fix leap year handling: adding (year / 4) * 24 * 60 * 60 is
wrong for first 2 months of a leap year; the test (year & 4)
should be (year % 4).
* Simplify month code.
* Drop enable_rtc_int, disable_rtc_int, rtc_updating that are
not needed.
* Update documentation.
Ben Pfaff [Sat, 23 Aug 2008 03:44:32 +0000 (03:44 +0000)]
Use macros for 8259A PIC registers, instead of writing them literally.
Based on patch from Anthony Romano <chz@vt.edu>, so update authorship
information given that Anthony is going to be contributing quite a
bit.
Ben Pfaff [Thu, 21 Aug 2008 04:49:45 +0000 (04:49 +0000)]
Use --build-id=none to avoid build-id sections on FC8.
These build-id sections cause the Pintos ELF loader to reject
binaries. The preferred way to eliminate them would be to add
/DISCARD/ : { *(.note.gnu.build-id) }
to the linker script, but (as reported by Godmar Back) this causes a
segmentation fault in ld, as reported in a bug filed at:
http://sourceware.org/bugzilla/show_bug.cgi?id=5025
Ben Pfaff [Sat, 2 Aug 2008 11:30:43 +0000 (11:30 +0000)]
Fix asm constraints to avoid SI, DI for byte and word access.
Thanks to Ed Lyle Karrels <karrels@stanford.edu> for reporting the
problem.
Ben Pfaff [Fri, 18 Jul 2008 01:13:29 +0000 (01:13 +0000)]
Fix bug in --sim and --debug options reported by Bob Lantz.
Ben Pfaff [Thu, 3 Jul 2008 20:10:32 +0000 (20:10 +0000)]
Specify rounding for priority calculations.
Pointed out by Ed Karrels <karrels@stanford.edu>.
Ben Pfaff [Thu, 3 Jul 2008 19:31:27 +0000 (19:31 +0000)]
No longer recommend SourceForge.
Really it seems like a bad idea for students.
Ben Pfaff [Thu, 3 Jul 2008 19:30:05 +0000 (19:30 +0000)]
Make recent Texinfo accept devel.texi.
Ben Pfaff [Mon, 17 Mar 2008 11:56:48 +0000 (11:56 +0000)]
Wording improvements, from "Valentin I. Spitkovsky"
<vspitkovsky@yahoo.com>.
Ben Pfaff [Thu, 21 Feb 2008 04:25:17 +0000 (04:25 +0000)]
Reference to threads/exception.c should be to userprog/exception.c.
Thanks to Matt Jones <mkjones@stanford.edu> for reporting this bug.
Ben Pfaff [Thu, 14 Feb 2008 08:17:14 +0000 (08:17 +0000)]
Explain why a null pointer sentinel must be pushed on the stack.
From Valentin I. Spitkovsky <vspitkovsky@yahoo.com>.
Ben Pfaff [Thu, 14 Feb 2008 08:12:21 +0000 (08:12 +0000)]
Grammar fixes.
From Valentin I. Spitkovsky <vspitkovsky@yahoo.com>.
Ben Pfaff [Sat, 26 Jan 2008 16:43:15 +0000 (16:43 +0000)]
Use -fno-stack-protector with GCC versions that support it, to fix a
linker error on platform on which -fstack-protector is default, such
as recent versions of Ubuntu.
Ben Pfaff [Thu, 24 Jan 2008 18:49:45 +0000 (18:49 +0000)]
Fix typos.
Reported by Valentin I. Spitkovsky <vspitkovsky@yahoo.com>.
Ben Pfaff [Thu, 24 Jan 2008 18:48:41 +0000 (18:48 +0000)]
Fix reversal of "acquire" and "release" in Locks section.
Reported by Valentin I. Spitkovsky <vspitkovsky@yahoo.com>.
Godmar Back [Wed, 9 Jan 2008 19:48:05 +0000 (19:48 +0000)]
- moved all instructions that related to local CVS/group setup in localcvsinstructions.texi
- added variables recommendsourceforge, recommendvnc, and recommendcygwin to include/exclude
recommendations to use sourceforge, VNC, and Cygwin, resp.
Godmar Back [Sat, 17 Nov 2007 09:42:26 +0000 (09:42 +0000)]
- add localsettings.texi which contains Stanford-local macros and variables
- threads.texi - removed comment about being welcome to implement priority donation for semaphores
- vm.texi - added FAQ about how to resume. It truely is a FAQ, at least here at Tech.
- debug.texi - updated Bochs build instructions
Godmar Back [Fri, 16 Nov 2007 02:18:35 +0000 (02:18 +0000)]
added IGNORE_USER_FAULTS clause to match specification
Godmar Back [Sun, 23 Sep 2007 15:40:23 +0000 (15:40 +0000)]
fixed typo: "pass" should be "fail"
Ben Pfaff [Fri, 18 May 2007 23:23:51 +0000 (23:23 +0000)]
Clean some more files.
Ben Pfaff [Mon, 7 May 2007 23:02:07 +0000 (23:02 +0000)]
Fix warning.
Ben Pfaff [Mon, 23 Apr 2007 00:05:33 +0000 (00:05 +0000)]
Correctly initialize the esp0 pointer in the TSS for the initial
kernel thread. Shouldn't actually matter in practice, because that
pointer is only used on a user->kernel transition, and the initial
kernel thread never runs a user process.
Reported by Godmar Back.
Ben Pfaff [Mon, 2 Apr 2007 08:10:25 +0000 (08:10 +0000)]
Ignore tags and cscope files.
Ben Pfaff [Mon, 2 Apr 2007 07:23:22 +0000 (07:23 +0000)]
Improve comment on thread_unblock().
Suggested by Godmar Back.
Ben Pfaff [Sat, 31 Mar 2007 14:40:52 +0000 (14:40 +0000)]
Fix bugs in -j and -r options reported by Godmar Back.
Ben Pfaff [Sat, 31 Mar 2007 14:40:29 +0000 (14:40 +0000)]
Fix bug in jitter reported by Godmar Back (BIOS wouldn't finish
initializing).
Ben Pfaff [Sat, 31 Mar 2007 14:12:03 +0000 (14:12 +0000)]
Fix specification of "write" system call to match the file system
implementation and the tests.
Ben Pfaff [Sat, 31 Mar 2007 13:49:21 +0000 (13:49 +0000)]
Describe cscope.
Ben Pfaff [Sat, 31 Mar 2007 12:26:45 +0000 (12:26 +0000)]
Delete question about pwd.c program, as agreed with Godmar earlier.
Ben Pfaff [Sat, 24 Mar 2007 01:26:18 +0000 (01:26 +0000)]
Improve wording.
From Godmar Back.
Ben Pfaff [Sat, 24 Mar 2007 01:12:10 +0000 (01:12 +0000)]
Explain the semantics of exec in more detail.
From Godmar Back.
Ben Pfaff [Sat, 24 Mar 2007 01:04:19 +0000 (01:04 +0000)]
Add helpful comment.
From Godmar Back.
Ben Pfaff [Sat, 24 Mar 2007 01:02:19 +0000 (01:02 +0000)]
Add "cscope" target.
Ben Pfaff [Sat, 24 Mar 2007 01:01:06 +0000 (01:01 +0000)]
Rename execute_thread() to start_process().
Thanks to Godmar Back for pointing out that it could be better named.
Ben Pfaff [Sat, 24 Mar 2007 00:56:57 +0000 (00:56 +0000)]
Clarify that create and remove work on files, not on file descriptors.
Thanks to Godmar Back for pointing out the need.
Ben Pfaff [Thu, 8 Mar 2007 03:56:24 +0000 (03:56 +0000)]
Fix bug in *-persistence tests when prerequisites fail.
Reported by Tanvi Vyas <tanvi@stanford.edu>.
Ben Pfaff [Wed, 7 Mar 2007 14:52:06 +0000 (14:52 +0000)]
Fix inconstiency in recent_cpu update description.
Ben Pfaff [Sun, 11 Feb 2007 04:45:07 +0000 (04:45 +0000)]
Fix typo.
Ben Pfaff [Sun, 11 Feb 2007 04:44:25 +0000 (04:44 +0000)]
Clarify description of "wait" syscall. Thanks to Evan Kutter
<ejk@stanford.edu> for describing the issue.
Ben Pfaff [Tue, 6 Feb 2007 21:09:10 +0000 (21:09 +0000)]
Improve example for "Can a thread's priority change while it is on the
ready queue?" FAQ. From Godmar Back.
Godmar Back [Tue, 6 Feb 2007 06:44:01 +0000 (06:44 +0000)]
added patch to make bochs work with gdb 6.5
Ben Pfaff [Sun, 28 Jan 2007 04:21:55 +0000 (04:21 +0000)]
Fix order of checks on load average.
From a CS140 student, via Ben Sapp.
Ben Pfaff [Sun, 21 Jan 2007 10:29:26 +0000 (10:29 +0000)]
Add i86pc to unames detected as x86 (used by Solaris).
From Michael Gregory <mpgreg@stanford.edu>.
Godmar Back [Sat, 13 Jan 2007 14:39:41 +0000 (14:39 +0000)]
fixed grammar/typo
Ben Pfaff [Thu, 11 Jan 2007 08:02:13 +0000 (08:02 +0000)]
Set VERBOSE to empty string by default, which prevents an environment
variable named VERBOSE from causing trouble but still allows it to be
overridden by the user on the command line. (Some of the Stanford
machines set VERBOSE=yes in the environment by default on log-in.)
Ben Pfaff [Thu, 11 Jan 2007 07:48:07 +0000 (07:48 +0000)]
Remove unnecessary semicolon that gives GNU make 3.80 fits.
Ben Pfaff [Thu, 11 Jan 2007 06:57:40 +0000 (06:57 +0000)]
Don't call bx_gdbstub_exception when we're not compiling the gdb stub.
Thanks to Godmar Back for pointing this out.
Ben Pfaff [Tue, 9 Jan 2007 17:46:42 +0000 (17:46 +0000)]
Add -MF to GCC invocation to make ccache happy on Fedora Core 6.
Godmar Back [Mon, 8 Jan 2007 09:55:17 +0000 (09:55 +0000)]
clarified stack limit issue and removed comment about first instruction faulting in stack page
Godmar Back [Mon, 8 Jan 2007 08:46:49 +0000 (08:46 +0000)]
- removed @ref to "printf Reboots" since this no longer applies and the @anchor is gone
- fixed typo print -> printf
Godmar Back [Mon, 8 Jan 2007 06:11:37 +0000 (06:11 +0000)]
adjusted scores for P4 as discussed
Godmar Back [Sun, 7 Jan 2007 21:38:02 +0000 (21:38 +0000)]
Cosmetic fix: make first column wider to account for longer names in p4.
Godmar Back [Sun, 7 Jan 2007 20:55:28 +0000 (20:55 +0000)]
- adjustments to scores for P3 as discussed.
- increased problem size for page-* tests to force eviction
Godmar Back [Sun, 7 Jan 2007 20:54:54 +0000 (20:54 +0000)]
adjustments to scores for P2 as discussed.
Godmar Back [Sat, 6 Jan 2007 19:00:52 +0000 (19:00 +0000)]
- added priority-donate-chain test which tests 8-level deep nested donation
- adjusted weights for P1 Grading file
Ben Pfaff [Thu, 4 Jan 2007 15:13:49 +0000 (15:13 +0000)]
Separate persistence tests from the extended filesys tests.
Suggested by Godmar Back.
Ben Pfaff [Thu, 4 Jan 2007 14:19:25 +0000 (14:19 +0000)]
New page-merge-mm, page-merge-stk tests.
Thanks to Godmar Back for suggestion.
Ben Pfaff [Mon, 18 Dec 2006 18:33:52 +0000 (18:33 +0000)]
Make comment more readable.
Ben Pfaff [Fri, 15 Dec 2006 19:40:03 +0000 (19:40 +0000)]
Fix expected output.
Ben Pfaff [Fri, 15 Dec 2006 14:58:10 +0000 (14:58 +0000)]
Don't require distinguishing data and metadata for caching.
Another suggestion for implementation order.
From Godmar.
Ben Pfaff [Fri, 15 Dec 2006 14:24:48 +0000 (14:24 +0000)]
Fix comment.
Ben Pfaff [Fri, 15 Dec 2006 14:21:04 +0000 (14:21 +0000)]
When printing a directory tree, indicate explicitly if it's empty.
Ben Pfaff [Mon, 11 Dec 2006 20:40:20 +0000 (20:40 +0000)]
Parse command-line options much earlier, so that thread_mlfqs is
initialized before thread_init() gets hold of it.
Also allow console output much earlier, by doing initialization
whenever we call into it first and by only trying to take the console
lock after threads have been initialized.
Don't try to take the console lock after the kernel panics, to avoid
getting nailed so hard by bugs in lock_acquire().
Suggested by Godmar Back.