summaryrefslogtreecommitdiff
path: root/Kernel
AgeCommit message (Collapse)Author
2019-04-27DiskBackedFS: 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-27Ext2FS: 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-27Kernel: "Succeed" quietly for zero-length read() and write().Andreas Kling
2019-04-26LibC: Add execvpe() and make execvp()'ed children inherit environment.Andreas Kling
2019-04-25Kernel: 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-25Kernel: 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-25Ext2FS: Reduce debug spam in block allocation.Andreas Kling
2019-04-25Kernel: Dump stack trace when kmalloc() fails.Andreas Kling
2019-04-25Kernel: 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-24Allow passing extra args to qemu via a SERENITY_EXTRA_QEMU_ARGS env var.Andreas Kling
2019-04-24Kernel: Add a comment block about the Device class.Andreas Kling
2019-04-24Kernel: Simplify Device::open().Andreas Kling
2019-04-23Kernel: 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-23Put assertions behind a DEBUG flag to make it easy to build without them.Andreas Kling
2019-04-23Build: 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-23Kernel: 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-23Ext2S: Fix off-by-one error in block allocation.Andreas Kling
2019-04-23Ext2FS: 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-23Ext2FS: More bitmap misunderstanding cleanups.Andreas Kling
Inode bitmaps are also only ever one block.
2019-04-23Ext2FS: 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-23Do a pass of compiler warning fixes.Andreas Kling
This is really making me question not using 64-bit integers more.
2019-04-23Kernel: 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-23Kernel: Send IDE flush command after writing sectors.Andreas Kling
2019-04-23Kernel: Use IDE LBA addressing instead of the long-obsolete C/H/S.Andreas Kling
2019-04-22Kernel: Make sure we don't use any FPU/MMX/SSE instructions.Andreas Kling
2019-04-22Kernel: 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-22Kernel: 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-21Kernel: 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-21Include Makefile.common in all other Makefiles.Andreas Kling
2019-04-20Kernel: 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-20Kernel: Remove some more unnecessary Thread members.Andreas Kling
2019-04-20Kernel: Shrink Thread by making kernel resume TSS heap-allocated.Andreas Kling
2019-04-20Kernel: 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-20AK: Add String::copy(BufferType) helper.Andreas Kling
This will create a String from any BufferType that has data() and size().
2019-04-20Sprinkle 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-20Get 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-20Snake: Flesh out a basic snake game :^)Andreas Kling
2019-04-18LibGUI: 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-18Kernel+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-17Kernel+ProcessManager: Show per-process syscall counts.Andreas Kling
Added a simple syscall counter to the /proc/all contents. :^)
2019-04-17Kernel: 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-17Kernel: 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-16AK: Try to use StringViews more for substrings and splitting.Andreas Kling
2019-04-16Kernel: Reduce kmallocing in all_processes() and all_pids().Andreas Kling
2019-04-16Kernel: Reduce kmallocing in /proc/all and /proc/memstat.Andreas Kling
2019-04-16Kernel: Have TTY subclasses cache their tty_name/pts_name.Andreas Kling
2019-04-15Kernel: 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-15Kernel: Make symbolication callable from kmalloc().Andreas Kling
It wasn't possible to symbolicate from kmalloc(), since symbolication would call kmalloc(). :^)
2019-04-15Kernel: 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-15Kernel+ProcessManager: Expose the number of kmalloc/kfree calls.Andreas Kling
This will be very helpful in tracking down unwanted kmalloc traffic. :^)