<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kmi/arch/riscv64/kernel/proc.c, branch master</title>
<subtitle>ACTIVE - Kernel with migrating threads as IPC</subtitle>
<id>https://metanimi.dy.fi/cgit/kmi/atom?h=master</id>
<link rel='self' href='https://metanimi.dy.fi/cgit/kmi/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/'/>
<updated>2024-11-02T16:58:13Z</updated>
<entry>
<title>allow skipping some cache flushes in proc</title>
<updated>2024-11-02T16:58:13Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-11-02T16:58:13Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=5890df7bf838a5a912465a1bba02e5d8cf34e33c'/>
<id>urn:sha1:5890df7bf838a5a912465a1bba02e5d8cf34e33c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpc actually marks and unmarks stack regions</title>
<updated>2024-11-01T08:27:36Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-10-30T11:34:18Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=f139fff6ae7063c1965fa3085bb2585d7d838d72'/>
<id>urn:sha1:f139fff6ae7063c1965fa3085bb2585d7d838d72</id>
<content type='text'>
+ Processes won't be able to read previous stack frames etc
</content>
</entry>
<entry>
<title>most of the way to passing tests</title>
<updated>2024-10-29T22:57:33Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-10-29T22:57:33Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=44a73ecab6e91519627786a5101cd4f1a2f2b0d7'/>
<id>urn:sha1:44a73ecab6e91519627786a5101cd4f1a2f2b0d7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>start moving towards threads always being in rpc</title>
<updated>2024-10-29T19:17:31Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-10-29T19:17:31Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=5976ad390a15726c3ddfacf8c8b282c8350f9554'/>
<id>urn:sha1:5976ad390a15726c3ddfacf8c8b282c8350f9554</id>
<content type='text'>
</content>
</entry>
<entry>
<title>change sys_ret handling to always include id</title>
<updated>2024-08-22T10:19:50Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-08-22T10:19:50Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=66b39eb7ce9605cbb70defdca7f0eb144855ddcd'/>
<id>urn:sha1:66b39eb7ce9605cbb70defdca7f0eb144855ddcd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>start working on tests</title>
<updated>2024-07-09T19:12:27Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-09T19:12:27Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=e8a1df103cc28419dd7d4439c0b1d1739d110f78'/>
<id>urn:sha1:e8a1df103cc28419dd7d4439c0b1d1739d110f78</id>
<content type='text'>
+ Current setup will likely not last long, just a stopgap until I figure
  out how I want to build each testcase etc.

  Probably dir based, but I'll probably add some scripts that generate
  the build rules for each test case (or binary?). Also, should probably
  put ouput files in a build directory and keep the source clean, but
  again, good enough for now.

  Will have to start implementing more extensive tests, and probably
  come up with some way to compare textual output etc.
</content>
</entry>
<entry>
<title>fix LLVM</title>
<updated>2024-07-08T15:04:03Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-08T14:43:59Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=e134202611a50b358c147c92bfb8a7f443030b8b'/>
<id>urn:sha1:e134202611a50b358c147c92bfb8a7f443030b8b</id>
<content type='text'>
+ Anything extern is right out as LLVM doesn't produce correct code for
  them. Maybe if I added some extra attributes but I'm skeptical.
  Replaced with static variables and getters/setters.

+ Inline ASM is apparently a bit buggy, so use an assembly stub when jumping to init.

+ Minimize work done in main() to minimize chance of LLVM doing something silly.
  Still not 100% certain that I shouldn't just write the main() as an assembly stub
  in arch/riscv64 to be absolutely sure everything works as intended.

+ Make .kernel.start section SHF_ALLOC, otherwise lld complains about
  pc-relative addressing

Probably some other stuff as well that I'm forgetting right now. But at least with
LLVM14 LTO seems to work, which is pretty cool?
</content>
</entry>
<entry>
<title>add orphan checking to timer and irq handling</title>
<updated>2024-07-08T14:38:59Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-08T14:38:59Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=7e828ec1e1479ff9a8afe845539d08ca0dfada5f'/>
<id>urn:sha1:7e828ec1e1479ff9a8afe845539d08ca0dfada5f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add req_page back in as I realized it's useful</title>
<updated>2024-07-07T18:47:14Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-07T18:47:14Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=219c27d420fe0abe5515cefc2513c6fe60aafdf9'/>
<id>urn:sha1:219c27d420fe0abe5515cefc2513c6fe60aafdf9</id>
<content type='text'>
+ Can be used to pass contiguous memory regions to things like virtio
  block devices for implementing disk drivers etc.
</content>
</entry>
<entry>
<title>make executable entrypoint universal callback</title>
<updated>2024-07-07T15:12:55Z</updated>
<author>
<name>Kimplul</name>
<email>kimi.h.kuparinen@gmail.com</email>
</author>
<published>2024-07-07T15:12:55Z</published>
<link rel='alternate' type='text/html' href='https://metanimi.dy.fi/cgit/kmi/commit/?id=fe4c623cb9320226866829317cea8ba0c49e7dbc'/>
<id>urn:sha1:fe4c623cb9320226866829317cea8ba0c49e7dbc</id>
<content type='text'>
+ Effectively means that all executables can be called into, but if an
  exe doesn't want to deal with anyone else it should just set a flag
  like `not_really_a_server` or whatever
</content>
</entry>
</feed>
