Commit graph

3727 commits

Author SHA1 Message Date
mischief
46cc1c444b sam: mark samsave executable
sam generates $home/sam.save for modified files. it expects /sys/lib/samsave to be executable to restore the modified files.
2014-06-25 03:13:52 -07:00
mischief
2060daf3b0 xen: fix early console 2014-06-24 19:37:03 -07:00
mischief
5ba95fdb07 import xen 32 bit paravirtual kernel from /n/sources/xen. 2014-06-24 18:02:25 -07:00
cinap_lenrek
fa03455b50 kernel: more proc.c cleanup 2014-06-23 21:51:34 +02:00
cinap_lenrek
6a05751132 kernel: make use of nil and 0 consistent in proc.c
always explicitely compare with nil if pointer.
sorry for the noise. :(
2014-06-23 21:24:12 +02:00
cinap_lenrek
650d794cbf merge 2014-06-23 20:30:18 +02:00
cinap_lenrek
7cf6a35486 kernel: fix cooperative scheduling for wired processes 2014-06-23 20:29:10 +02:00
stanley lieber
c87e7ffe2b newt(1): minor man page clarifications 2014-06-22 18:10:04 -04:00
cinap_lenrek
87d5626af0 ether8169: use u16int instead of u8int for C+ command register (thanks pavel / erik) 2014-06-22 19:01:37 +02:00
cinap_lenrek
e7bfa556ad pc64: fix comment for preallocpages() 2014-06-22 16:05:53 +02:00
cinap_lenrek
3c41f98e0c remove imagepagerefs() acid function 2014-06-22 15:40:36 +02:00
cinap_lenrek
d4d86df2ab kernel: new pagecache, remove Lock from page, use cmpswap for Ref instead of Lock
make the Page stucture less than half its original size by getting rid of
the Lock and the lru.

The Lock was required to coordinate the unchaining of pages that where
both cached and on the lru freelist.

now pages have a single next pointer that is used for palloc.head
freelist xor for page cache hash chains in Image.pghash[].

cached pages are not on the freelist anymore, but will be reclaimed
from images by the pager when the freelist runs out of pages.

each Image has its own 512 hash chains for cached page lookup. That is
2MB worth of pages and there should be no collisions for most text images.

page reclaiming can be done without holding palloc.lock as the Image is
the owner of the page hash chains protected by the Image's lock.

reclaiming Image structures can be done quickly by only reclaiming pages from
inactive images, that is images which are not currently in use by segments.

the Ref structure has no Lock anymore. Only a single long that is atomically
incremented or decremnted using cmpswap().

there are various other changes as a consequence code. and lots of pikeshedding,
sorry.
2014-06-22 15:12:45 +02:00
cinap_lenrek
4f95d75098 ed: dont pass string constants to mktemp() 2014-06-22 01:48:02 +02:00
aiju
f65d27b0fc games/md: small bug fixes 2014-06-15 20:11:24 +02:00
aiju
1bacbf5651 games/md: add shadow/hilight support 2014-06-15 19:02:06 +02:00
aiju
838163670c games/md: add save game support, fix cpu bug 2014-06-15 15:52:29 +02:00
aiju
e30fc1fbdf games/md: small fixes 2014-06-14 20:18:57 +02:00
aiju
37a5b4e9c3 games/snes: fix -T 2014-06-13 19:54:33 +02:00
aiju
f0ed9ed9f0 games/md: vdp window fix, added ym2612 timers 2014-06-13 18:06:44 +02:00
aiju
7c25ae8a34 games/md: add z80, audio support 2014-06-13 17:21:25 +02:00
cinap_lenrek
26d2fbaec1 merge 2014-06-13 10:21:27 +02:00
cinap_lenrek
e6f37cf64e pc64: fix MS2HZ (thanks Anthony Martin) 2014-06-13 10:19:46 +02:00
stanley lieber
e9b6f349b8 termrc, cpurc: clarify comments by removing lies 2014-06-12 15:56:54 -04:00
cinap_lenrek
63ac70281a libstdio: avoid issues with aliasing in dtoa() on amd64 (from 9atom, thanks to erik and charles) 2014-06-12 20:14:12 +02:00
cinap_lenrek
d4e66accaa libsec: use u32int instead of uint when we need 32 bit (thanks erik) 2014-06-12 14:05:10 +02:00
cinap_lenrek
fa09758a73 samterm: use 4K stacks for amd64 (thanks burnzez)
we got a stack overflow on the hostproc on amd64 overflowing
by arround 200 byte. so just use 4K stacks for everything.
2014-06-11 19:31:14 +02:00
cinap_lenrek
3a5b2189ed revert ramfs example
the code was correct. erealloc9p() terminates the process
on error, but the code was handling realloc() error explicitely
and responded the request with Enomem error.
2014-06-11 18:01:20 +02:00
ftrvxmtrx
b4c3726381 libsec: fix dsagen 64-bit bug (thanks rsc) 2014-06-11 17:35:05 +02:00
ftrvxmtrx
6dd3cf4c40 lib9p: ramfs example: s/realloc/erealloc9p/ 2014-06-11 17:22:32 +02:00
mischief
4afbc988ca pool: declare pooldump in pool.h. the manual says it is public. 2014-06-09 12:17:45 -07:00
ftrvxmtrx
f6a7c62823 audiohda: add Intel 8 Series/C220 Series support 2014-06-09 21:53:40 +02:00
ftrvxmtrx
52174db958 ether8169: support for RTL8168G 2014-06-09 21:06:22 +02:00
mischief
906cc83c35 mkpaqfs: english 2014-06-09 05:05:59 -07:00
mischief
ca5cc6519d pc: clip rectangles before sending them to the hardware in flushmemscreen
the vmware svga video card emulated by qemu (qemu -vga vmware) complains and eventually causes a panic if the rectangles aren't clipped.

messages like the following can be observed from qemu before the kernel panics:
vmsvga_update_rect: update h was < 0 (-20000)
vmsvga_update_rect: update height too large y: 10000, h: 0
vmsvga_update_rect: update w was < 0 (-20000)
vmsvga_update_rect: update width too large x: 10000, w: 0

i could only reproduce this in qemu 2.0.50 on the master branch, when using the ui and had selected 'Zoom To Fit' from the View menu.
2014-06-09 00:22:11 -07:00
cinap_lenrek
858d3e39ab ether79c970: fix mistake
fix bug introduced by amd64 support:

forgot to update ring index i on receive. surprisingly
this was working until there where more than one packet
to process. sorry.

ilock the controller while processing rings. this should
be fixed and use kprocs instead.
2014-06-09 07:21:36 +02:00
cinap_lenrek
01b5ac1402 iostats: add -C flag to enable mount cache 2014-06-08 18:54:36 +02:00
cinap_lenrek
3d12f4f408 iostats: dont sysfatal on 9p read error due to program termination
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-08 18:27:39 +02:00
cinap_lenrek
1b8fb4fec3 swap: make sure swap address sticks arround until page is written to swap
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-08 17:39:40 +02:00
cinap_lenrek
fcfa74a1cf pc64: use pc/pcrandom.$O instead of port/random.$O for RDRAND instruction support 2014-06-08 04:40:18 +02:00
cinap_lenrek
72ba3571a3 kernel: remove _xinc()/_xdec()
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-08 01:35:22 +02:00
cinap_lenrek
0a2b418535 pc, pc64: fix missed qunlock, use Ref with incref()/decref() instead of _xinc()/_xdec() 2014-06-08 01:33:15 +02:00
cinap_lenrek
ce38380b8f omap: move syscall.$O target from config to mkfile 2014-06-08 00:26:39 +02:00
cinap_lenrek
3d20da3f8b omap: remove Block refcounting 2014-06-08 00:26:23 +02:00
cinap_lenrek
be3a5a6dc3 kernel: remove Block refcounting (thanks erik) 2014-06-08 00:19:33 +02:00
cinap_lenrek
9ee3095553 teg2: move syscall.$O and syscallfmt.$O targets from config to mkfile 2014-06-08 00:15:53 +02:00
cinap_lenrek
9e63895e80 kw: move syscall.$O target from config to mkfile 2014-06-08 00:14:31 +02:00
cinap_lenrek
07f7c46d37 omap4: update for new syscall interface and syscallfmt 2014-06-08 00:13:10 +02:00
stanley lieber
314e23b709 dougfacts: remove html corruption and end file with newline 2014-06-07 15:16:24 -04:00
cinap_lenrek
865368f604 pc64: remove unneeded parens in pmap() 2014-06-07 09:43:37 +02:00
cinap_lenrek
3cc15d2301 merge 2014-06-07 09:28:33 +02:00