Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-27 | DiskBackedFS: Flush write cache if it reaches 32 entries before sync. | Andreas Kling | |
This is just to avoid chewing through all of the kernel memory. There is a lot of room for improvement here, and 32 is just a number from the place where numbers come from. | |||
2019-04-27 | Ext2FS: Fix accidental zero-fill when appending to a file. | Andreas Kling | |
We were using the old file size, rather than the new file size, to determine how much to zero-fill in the last block of a file. | |||
2019-04-27 | Kernel: "Succeed" quietly for zero-length read() and write(). | Andreas Kling | |
2019-04-26 | LibC: Add execvpe() and make execvp()'ed children inherit environment. | Andreas Kling | |
2019-04-25 | Kernel: Don't count kfree(nullptr) as a call to kfree(). | Andreas Kling | |
This was causing the kmalloc/kfree call delta to accumulate errors. | |||
2019-04-25 | Kernel: Add a write cache to DiskBackedFS. | Andreas Kling | |
This way you can spam small write()s on a file without the kernel writing to disk every single time. Flushes are included in the FS::sync() operation and will get triggered regularly by syncd. :^) | |||
2019-04-25 | Ext2FS: Reduce debug spam in block allocation. | Andreas Kling | |
2019-04-25 | Kernel: Dump stack trace when kmalloc() fails. | Andreas Kling | |
2019-04-25 | Kernel: Make it possible to look up FIFO's by ID. | Andreas Kling | |
This will be useful when implementing the /proc/PID/fd/N links where N is a file descriptor referring to a FIFO. | |||
2019-04-24 | Allow passing extra args to qemu via a SERENITY_EXTRA_QEMU_ARGS env var. | Andreas Kling | |
2019-04-24 | Kernel: Add a comment block about the Device class. | Andreas Kling | |
2019-04-24 | Kernel: Simplify Device::open(). | Andreas Kling | |
2019-04-23 | Kernel: Process destruction should destroy all child threads. | Andreas Kling | |
We were only destroying the main thread when a process died, leaving any secondary threads around. They couldn't run, but because they were still in the global thread list, strange things could happen since they had some now-stale pointers to their old process. | |||
2019-04-23 | Put assertions behind a DEBUG flag to make it easy to build without them. | Andreas Kling | |
2019-04-23 | Build: Pass --gc-sections to the linker in all builds. | Andreas Kling | |
This removes unused sections from the output and reduces the binary size of everything we compile. | |||
2019-04-23 | Kernel: Make the right shift key work. | Andreas Kling | |
I never realized the right shift key wasn't hooked up since my left pinky always hovers over the left shift key, ready to rock. | |||
2019-04-23 | Ext2S: Fix off-by-one error in block allocation. | Andreas Kling | |
2019-04-23 | Ext2FS: Bitmaps aren't always at full capacity. | Andreas Kling | |
Block bitmaps only have (blocks_per_group) entries, while inode bitmaps only have (inodes_per_group) entries. | |||
2019-04-23 | Ext2FS: More bitmap misunderstanding cleanups. | Andreas Kling | |
Inode bitmaps are also only ever one block. | |||
2019-04-23 | Ext2FS: Simplify block bitmap stuff. | Andreas Kling | |
Block bitmaps are only ever one block in size. I don't know why I thought otherwise, but use this info to simplify the code. :^) | |||
2019-04-23 | Do a pass of compiler warning fixes. | Andreas Kling | |
This is really making me question not using 64-bit integers more. | |||
2019-04-23 | Kernel: Use rep insw/outsw for IDE transfers. | Andreas Kling | |
There are much faster ways to do disk transfers, but I'm not implementing those today. In the meantime, this is slightly nicer. :^) | |||
2019-04-23 | Kernel: Send IDE flush command after writing sectors. | Andreas Kling | |
2019-04-23 | Kernel: Use IDE LBA addressing instead of the long-obsolete C/H/S. | Andreas Kling | |
2019-04-22 | Kernel: Make sure we don't use any FPU/MMX/SSE instructions. | Andreas Kling | |
2019-04-22 | Kernel: Add a systrace() syscall and implement /bin/strace using it. | Andreas Kling | |
Calling systrace(pid) gives you a file descriptor with a stream of the syscalls made by a peer process. The process must be owned by the same UID who calls systrace(). :^) | |||
2019-04-22 | Kernel: Don't use MMX memcpy() in the kernel. | Andreas Kling | |
I just discovered the hard way that clobbering FPU/MMX/SSE registers in the kernel makes things very confusing for userspace (and other kernel threads.) Let's banish all of those things from the kernel to keep things simple. | |||
2019-04-21 | Kernel: Get rid of the "cool globals" thingy. | Andreas Kling | |
This was something I used while debugging with Computron. I haven't needed it for months, so let's get rid of it. It's trivial to readd if needed. | |||
2019-04-21 | Include Makefile.common in all other Makefiles. | Andreas Kling | |
2019-04-20 | Kernel: Remove "restorer" field from SignalActionData. | Andreas Kling | |
I was originally implementing signals by looking at some man page about sigaction() to see how it works. It seems like the restorer thingy is system-specific and not required by POSIX, so let's get rid of it. | |||
2019-04-20 | Kernel: Remove some more unnecessary Thread members. | Andreas Kling | |
2019-04-20 | Kernel: Shrink Thread by making kernel resume TSS heap-allocated. | Andreas Kling | |
2019-04-20 | Kernel: Make the colonel run at "Idle" priority (the lowest possible.) | Andreas Kling | |
This means it won't hog the CPU for more than a single timeslice. :^) | |||
2019-04-20 | AK: Add String::copy(BufferType) helper. | Andreas Kling | |
This will create a String from any BufferType that has data() and size(). | |||
2019-04-20 | Sprinkle use of AK::Vector in various places. | Andreas Kling | |
Some of these are less helpful than others. Avoiding a bunch of mallocs in the event loop wakeup code is definitely nice. | |||
2019-04-20 | Get rid of SERENITY macro since the compiler already defines __serenity__ | Andreas Kling | |
This makes it a bit easier to use AK templates out-of-tree. | |||
2019-04-20 | Snake: Flesh out a basic snake game :^) | Andreas Kling | |
2019-04-18 | LibGUI: Start working on GTableView inline editing. | Andreas Kling | |
This is pretty shaky still, but the basic idea is that you subclass GModel and return true for editable indices. The table view also needs to have its editable flag set. | |||
2019-04-18 | Kernel+LibC: Add a DebugLogDevice that forwards everything to I/O port 0xe9. | Andreas Kling | |
This is then used to implement the userspace dbgprintf() in a far more efficient way than what we had before. :^) | |||
2019-04-17 | Kernel+ProcessManager: Show per-process syscall counts. | Andreas Kling | |
Added a simple syscall counter to the /proc/all contents. :^) | |||
2019-04-17 | Kernel: Scheduler donations need to verify that the beneficiary is valid. | Andreas Kling | |
Add a Thread::is_thread(void*) helper that we can use to check that the incoming donation beneficiary is a valid thread. The O(n) here is a bit sad and we should eventually rethink the process/thread table data structures. | |||
2019-04-17 | Kernel: Lock::unlock_if_locked() should never donate to holder. | Andreas Kling | |
Since we're not interested in taking the lock if it's already held, there's no need to donate the remainder of our time slice to the holder. | |||
2019-04-16 | AK: Try to use StringViews more for substrings and splitting. | Andreas Kling | |
2019-04-16 | Kernel: Reduce kmallocing in all_processes() and all_pids(). | Andreas Kling | |
2019-04-16 | Kernel: Reduce kmallocing in /proc/all and /proc/memstat. | Andreas Kling | |
2019-04-16 | Kernel: Have TTY subclasses cache their tty_name/pts_name. | Andreas Kling | |
2019-04-15 | Kernel: Make it possible to have kmalloc() dump call stacks. | Andreas Kling | |
This can be enabled at any time using a sysctl: sysctl kmalloc_stacks=1 The stacks will go to the debugger output only. | |||
2019-04-15 | Kernel: Make symbolication callable from kmalloc(). | Andreas Kling | |
It wasn't possible to symbolicate from kmalloc(), since symbolication would call kmalloc(). :^) | |||
2019-04-15 | Kernel: Make validate_read_from_kernel() return early for nullptr checks. | Andreas Kling | |
Null pointers are always invalid, so don't bother going through all the various checks for them. | |||
2019-04-15 | Kernel+ProcessManager: Expose the number of kmalloc/kfree calls. | Andreas Kling | |
This will be very helpful in tracking down unwanted kmalloc traffic. :^) |