summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-08iostats: dont sysfatal on 9p read error due to program terminationcinap_lenrek
the note mechanism is racy and can lead to the fs terminating iostats because it gets "i/o on hugup channel" (namespace closed).
2014-06-08swap: make sure swap address sticks arround until page is written to swapcinap_lenrek
we have to make sure the *swap address* doesnt go away, after putting the swap address in the segment pte. after we unlock the segment, the process could be killed or fault which would cause the swap address to be freed *before* we write the page to disk when it pulls the page from the cache and putswap() swap pte. keeping a reference to the page is no good. we have to hold on the swap address. this also has the advantage that we can now test if the swap address is still referenced and can avoid writing to disk.
2014-06-08pc64: use pc/pcrandom.$O instead of port/random.$O for RDRAND instruction ↵cinap_lenrek
support
2014-06-08kernel: remove _xinc()/_xdec()cinap_lenrek
as with the Block refcount changes, _xinc() and _xdec() arent used anymore, so remove them. architecure can still define ainc()/adec() when it needs them.
2014-06-08pc, pc64: fix missed qunlock, use Ref with incref()/decref() instead of ↵cinap_lenrek
_xinc()/_xdec()
2014-06-08omap: move syscall.$O target from config to mkfilecinap_lenrek
2014-06-08omap: remove Block refcountingcinap_lenrek
2014-06-08kernel: remove Block refcounting (thanks erik)cinap_lenrek
2014-06-08teg2: move syscall.$O and syscallfmt.$O targets from config to mkfilecinap_lenrek
2014-06-08kw: move syscall.$O target from config to mkfilecinap_lenrek
2014-06-08omap4: update for new syscall interface and syscallfmtcinap_lenrek
2014-06-07dougfacts: remove html corruption and end file with newlinestanley lieber
2014-06-07pc64: remove unneeded parens in pmap()cinap_lenrek
2014-06-07mergecinap_lenrek
2014-06-07pc64: implement checkmmu() debug functioncinap_lenrek
2014-06-07sdvirtio: experimental support for virtio-scsicinap_lenrek
2014-06-07file: djvuftrvxmtrx
2014-06-06fortunes: i believe any successful Plan 9 distro will need to provide some ↵stanley lieber
transparency in the change review process. -- Skip Tavakkolian
2014-06-06file: detect NES and SEGA rom files, fix newlinecinap_lenrek
2014-06-05mergecinap_lenrek
2014-06-05kernel: dont use atomic increment for Proc.nlocks, maintain Lock.m for ↵cinap_lenrek
lock(), use uintptr intstead of long for pc values change Proc.nlocks from Ref to int and just use normal increment and decrelemt as done in erik quanstros 9atom. It is not clear why we used atomic increment in the fist place as even if we get preempted by interrupt and scheduled before we write back the incremented value, it shouldnt be a problem and we'll just continue where we left off as our process is the only one that can write to it. Yoann Padioleau found that the Mach pointer Lock.m wasnt maintained consistently for lock() vs canlock() and ilock(). Fixed. Use uintptr instead of ulong for maxlockpc, maxilockpc and ilockpc debug variables.
2014-06-05g: add *.cppftrvxmtrx
2014-06-05pc64: dont trap _xinc()/_xdec() overflow/underflow, delete unused atomic ↵cinap_lenrek
functions
2014-06-04webfs: explicitely unmount old /mnt/web (thanks BurnZeZ)cinap_lenrek
webfs forks the namespace to isolate itself from its mount point which has the side effect that it captures the mount of previous instances of webfs mounted on /mnt/web. explicitely unmount the mountpoint in our namespace copy to drop the reference.
2014-06-04nusbrc: dont fork usb drivers into backgroundcinap_lenrek
probing needs to run synchronous to avoid races with other readers of /dev/usbevent.
2014-06-03nusb/usbd: cleanupcinap_lenrek
2014-06-03kernel: remove wrong and needles mapsize check in newseg() (thanks Yoann ↵cinap_lenrek
Padioleau)
2014-06-03nusb/usbd: serialize /dev/usbevent processingcinap_lenrek
when there are multiple readers of /dev/usbevent, we have to serialize the processing to make sure that only one driver is opening the devices control endpoint at a time. to do this, we assume the device is busy after reading the event file until the next read or clunk on the same fid. to mark a device busy, we set the dev->aux pointer to the fid processing a event. And the Event structure takes a reference to the device producing the event. the problem arised from cdc ethernet and nusb/serial sharing the same device class, and we need to run the particular driver to figure out if the device can be used. doing this concurrently fails because devusb allows only one open per endpoint.
2014-06-01pc64: fix for unsigned comparsion of (top - base) >= sizecinap_lenrek
the rounding of base can make it above top, so have to use signed comparsion.
2014-06-01pc64: use 2MB pages for preallocpages()cinap_lenrek
2014-06-01pc64: allocate palloc.pages from upagescinap_lenrek
the palloc.pages array takes arround 5% of the upages which gives us: 16GB = ~0.8GB 32GB = ~1.6GB 64GB = ~3.2GB we only have 2GB of address space above KZERO so this will not work for long. instead, pageinit() was altered to accept a preallocated memory in palloc.pages. and preallocpages() in pc64/main.c allocates the in upages memory, mapping it in the VMAP area (which has 512GB). the drawback is that we cannot poke at Page structures now from /proc/n/mem as the VMAP area is not accessible from it.
2014-06-01games/nes: support Battle City two players mode with joypadsftrvxmtrx
2014-05-306a, 6c, 6l: fix copy propagationAram Hăvărneanu
Without an explicit signal for a truncation, copy propagation will sometimes propagate a 32-bit truncation and end up overwriting uses of the original 64-bit value. This was independently discovered and fixed in Go. See: http://golang.org/issue/1315 https://codereview.appspot.com/6002043/ Thanks Charles Forsyth for tips and advice.
2014-05-30we look for strings.c, it is broken, this strings.c will make us go.cinap_lenrek
2014-05-29pc, pc64: simplify reboot codecinap_lenrek
as we do system reset and reboot only from boot processor cpu0 now, theres no need for active.rebooting conditional variable. mpshutdown() will unconditionally park application processors and and cpu0 boots the new kernel or calls mpshutdown() causing system reset.
2014-05-29pc: initiate machine reset only from boot processors in mpshutdown()cinap_lenrek
in vmware, mpshutdown() used to hang in i8042reset() when not called from the boot processor, so instead of reseting from first cpu that acquires the shutdown lock, we park all application processors and let the boot processor do the reset.
2014-05-29games/md: bug fixesaiju
2014-05-29ape/stdio: set errno to EMFILE when running out of streamscinap_lenrek
2014-05-27games/snes: originwindow confuses the cataiju
2014-05-26page(1): orcinap_lenrek
2014-05-26page(1): minuscinap_lenrek
2014-05-26page(1): theres no -r option, nor multipage restrictionscinap_lenrek
2014-05-26mergeaiju
2014-05-26games/md: moonwalker!aiju
2014-05-26pc64: fix ulongs for address of devarchs realmodemem filecinap_lenrek
2014-05-26devproc: handle 64bit address writes to /proc/n/mem filescinap_lenrek
procwrite() did truncate the offset to 32bit ulong. introduce off2addr() function that does the sign extension hack and use it conststently for Qmem reads and writes.
2014-05-26mergecinap_lenrek
2014-05-26kernel: simplify fdclose()cinap_lenrek
2014-05-26devproc: fix close and closefiles procctlcinap_lenrek
for the CMclose procctl, the fd number was not bounds checked before indexing in the Fgrp.fd array. for the CMclosefiles, we looped fd from 0..maxfd-1, but need to loop from 0..maxfd as maxfd is inclusive.
2014-05-25games/md: small cpu and vdp bug fixesaiju