Subject: Teams and id's (This message is being sent to all CPSC 822 students) For the lab you MUST use the following user id names. You must also use the number following your name as your UID and GID. For lab it will be necessary to work in two person teams. If you wish to form your own team ONE member should send me both names by the end of today. If I don't hear from you I will assign teammates. kumarp 802 vbendi 803 mberryh 804 dgaikwa 805 sdracho 806 gsandee 807 ghutchi 808 nkolamb 809 amuthus 810 ngaurav 811 rharish 812 hsangha 813 rschutt 814 rsrivat 815 rvadlam 816 ayarlag 817 Subject: ids + test (This message is being sent to all CPSC 822 students) The quiz Monday will include material from both that which was covered in the class notes + the lab exercises through lab yesterday. I have created for you an NIS id and space on a file server. You MUST immediately set a password on that account!!! To do so: (1) telnet or rlogin to machine netlab1 you will not be required to supply a password. (2) use the yppasswd command to set a password. Any accounts not protected by Saturday will be protected by me! Subject: Aaarggh.. (This message is being sent to all CPSC 826 students) netlab1 is actually known to the outside world as netlab-gw Subject: Semaphore LAB (This message is being sent to all CPSC 826 students) Chakrit has asked an excellent question: What are the semantics of SEM_SET when the value of the semaphore is negative at the time of the SEM_SET?? (i.e. there exists a non-empty wait queue). There are a number of ugly ways to handle this so we will take the easy way out. If the value is negative simply return(-EINVAL) and don't change the value. Do the same thing if the caller attempts to set the semaphore to a negative value. Subject: one more time (This message is being sent to all CPSC 822/6 students) If you were having trouble getting it to set your password please try again now. I had failed to restart one of the daemons after changing some stuff around. Subject: Keeping track of semphores.. (This message is being sent to all CPSC 822/6 students) The release() file operation turns out not to be a safe way to track who is allocated or bound to a semaphore. flush() works much better!! see page 63 in the drivers book for details. Subject: Major system crashes (This message is being sent to all CPSC 822 students) One team suffered a major system crash which rendered their system temporarily unbootable. I have now fixed that, but here is how to minimize the chance of it happening and how to try to fix it yourself if it should. 1 - To minimize the chance of the problem, run the sync command BEFORE installing the module AND before each test application is started. 2 - If you get the damaged file system on reboot and it asks you to enter the root password for maintenance, do so. Then enter /sbin/fsck /dev/hda1 and then /sbin/fsck /dev/hda3 fsck may ask you a large number of (yes/no) questions the correct answer is ALWAYS yes. when both fscks complete do a ctrl-D to reboot. Subject: Reporting test outcomes (This message is being sent to all CPSC 822 students) Testing results in lab tomorrow should just be written up as an informal testing.txt file (vi is fine) which contains a brief description of all the problems found. This file should be submitted in your own turnin directory. If using vi be SURE to put in hard line breaks after every 60 or 70 characters so that I can eventually print what you write without getting a big mess of truncated stuff. Subject: Reminder (This message is being sent to all CPSC 822 students) There will be a quiz in class tomorrow which will cover the design of the Interphase 5515 device driver and the use of the /proc file system. Subject: Notes + quiz key (This message is being sent to all CPSC 822 students) Notes have been updated and there is also a quiz key in the directory. A brief perusal of the quizzes seemed to indicate some seriously inadequate preparation in a few cases. Subject: "Advanced" Power Management (APM) (This message is being sent to all CPSC 822/826 students) I arrived this morning to find netlab2,3,5,6 ALL unreachable over the net. When I began to restart networking, I found that they had all failed at exactly the same time: roughly 11:45 pm last night. Furthermore, I found that in all cases the failure was precipitated by loss of signal from the switch. So I logged into the switch and not-so-surprisingly the switch says it was rebooted at about midnight last night. Unlike netlab2,3,5,6, netlab4 WAS up this am. However, its logs indicated that it about midnight last night although there was no evidence of activity on the system before the reboot. Now it turns out that netlab4, the 822 machine shemp, and the 8285 switch just so happen to be plugged into the same power strip. Noting this, an inspection of shemp's logs also not-so-surprisingly indicated a reboot around midnight. Unlike the netlab4 case, the logs on shemp indicated activity WAS occuring at the time of the reboot. This leads me to believe the the operators of shemp either (1) inadvertently disconnected the power as a result of an extreme attack of restless leg syndrome. or (far worse) (2) failing to grasp the fact that they would also off/on the 8285 and netlab4 decided a handy way to reboot a hung system would be to off/on the power strip... Moral of the story: (repeated for the n'th time for 826 students) Please remember that this is a shared facility and try to take care to ensure that your actions don't inadvertently impact the ability of other students to complete assigned work. Thank you, the mgmt. Subject: Tasklet questions (This message is being sent to all CPSC 822/826 students) Q: Why does the transmit routine in the existing code use a spinlock while the recvlock is defined but never used. A: In the existing code all of the receive code runs as a disabled interrupt handler but the transmit interrupt handler may preempt the transmit front end (send5skb) at any point. Q: (not yet asked) Well then, doesn't the existing design have a nasty potential bug when running on an MP. A: Ooops. Quite possibly so! However, for reasons unknown the existing driver seems very robust on an MP. Q: What if I just lock at the start of ia_rfred_handler() and release on return and do the same at the start of ia_host_intr() A: That is actually a safe solution but will not be rewarded with full points because it precludes parallel operation of the two receive tasklets (even though that is achievable only on an MP system (and with a nice tail-wind to boot)). Q: Well then what is the target solution?? A: Try to minmize the amount of locked code. My solution requires two locked blocks .. one in ia_proc_rcv_pkt and one in ia_setup_dma. Q: Will you test this code on an MP. A: No. As I said, developing MP safe code is much more difficult than UP safe code. Since we can't provide MP test platforms for all teams I won't require it. Subject: ATM driver turnin (This message is being sent to all CPSC 822 students) Please turn in your atm driver in directories /local/share/home/turnin/822/a3 This should be an integrated driver that includes procfs support and whatever tasklet support you provided. Please provide a short README.822 file that describes the level of tasklet support that you think you provided. As far as grading goes, less can be more. That is, a driver that is rock solid but provides only transmit tasklets is going to score more than one that frequently crashes the system! Subject: Quiz coverage.. (This message is being sent to all CPSC 822 students) Todays quiz will cover the material on process management and that part of scheduling which was covered through last wednesday. Subject: Quiz reminder (This message is being sent to all CPSC 822 students) Today's quiz will cover the the hardware interrupt mechanism, the system call interface, and the intro to signals. Subject: Turn in of scheduler stuff (This message is being sent to all CPSC 822 students) 1 - Copy to a4 turnin directory: All kernel .c and .h files that you modified The character device driver Your rrtest.c test program 2 - Leave the test kernel with the scheduler mods running 3 - Leave the rrsched executable in /root Subject: ETHERNET (only) Network reconfiguration (This message is being sent to all CPSC 822 students) Because of Friday's network reconfiguration, You will need to modify the ethernet configuration on your lab machine. The new network addres is 192.168.60.0 Please change the host address associated with the Ethernet interface as follows: 2 IN PTR larry.cs.clemson.edu. 3 IN PTR curly.cs.clemson.edu. 4 IN PTR moe.cs.clemson.edu. 5 IN PTR shemp.cs.clemson.edu. 6 IN PTR stephen.cs.clemson.edu. 7 IN PTR darren.cs.clemson.edu. 8 IN PTR david.cs.clemson.edu. 9 IN PTR andrew.cs.clemson.edu. 10 IN PTR robert.cs.clemson.edu. 11 IN PTR darryl.cs.clemson.edu. 12 IN PTR jeff.cs.clemson.edu. 13 IN PTR dante.cs.clemson.edu. Netmask should remain 255.255.255.0 If you wish to default-route over the enet you should be able to us 192.168.60.1 as default router. The atm side of the network is unchanged. Subject: Signaling lab When you have completed your signal handler and test programs: 1 - Leave your new kernel running 2 - Turn in to your directory under a5 Any kernel modules you have modified All test programs and/or device drivers you developed A README file with instructions for running tests that will show: 1 - That your new signal does indeed eliminate Zombies 2 - That your new signal can kill deep sleepers 3 - That it IS possible to set up a handler for your new signal 4 - That your signal doesn't restart system calls. Subject: Final lab See lab9.sdw in /home/westall/class/822/labs Subject: quiz key (This message is being sent to all CPSC 822 students) quiz6 key is now available. Subject: How not to use the copy command... It appears that my impression regarding my bad luck copy was correct... It can only happen if you have EXACTLY 2 .sdc files AND the grade file is the second one in order. If you have only one or more than exactly two files all you suffer is an error message. ==> ls a.* a.0 a.1 a.2 ==> cp a.* cp: copying multiple files, but last argument `a.2' is not a directory Try `cp --help' for more information. ==> On the "good" news side, Jay has successfully recovered the grade file!!! mw