Commit Graph

27 Commits

Author SHA1 Message Date
Bahadir Balban
d826de2eea Initial work to introduce device types and device capabilities 2009-11-21 15:00:42 +02:00
Bahadir Balban
caa7ac0764 Put cinfo array into initdata section. Added more precision in bootmem
cinfo array is now freed along with other init memory.
bootmem allocator memory is reduced to be completely used up.
free boot memory now prints the used free memory as well.
2009-11-21 13:35:53 +02:00
Bahadir Balban
a13120c073 Added proper checking of capability overlap for memcap_unmap 2009-11-21 12:01:41 +02:00
Bahadir Balban
89093b8ace Inter-container ipc tests working. 2009-11-17 23:34:37 +02:00
Bahadir Balban
d9520adb55 Added means to search for threads in other containers
Thread ids now contain their container ids in the top 2 nibbles.
Threads on other containers can be addressed by changing those
two nibbles. The addressing of inter-container threads are
subject to capabilities.
2009-11-04 20:56:57 +02:00
Bahadir Balban
db57c598b0 Merged MAP and VIRTMEM/PHYSMEM capabilities into one.
VIRTMEM and PHYSMEM are theoretically separate resources to be
protected than a MAP resource, which is meant to protect the syscall
privileges.

In practice MAP is always used together with a VIRTMEM and a PHYSMEM
resource, therefore reach VIRTMEM/PHYSMEM resource is now merged with
the MAP capability, combining the micro-permission bits.
2009-11-04 15:26:47 +02:00
Bahadir Balban
b7e575817d Merged setup of internal memory caps and container creation
The two had common data in their initialization so it only made
sense to merge the two.
2009-11-03 15:26:59 +02:00
Bahadir Balban
9248328dd3 Pager struct allocated from boot memory and never referenced after boot.
We still have to have the pager structs because they possess intermediate
data during boot up such as for transferring of capability lists to
boot stack one-by-one, and then to newly generated ktcbs.
2009-11-03 15:09:28 +02:00
Bahadir Balban
6c69f181db First step in detaching pager struct from tasks 2009-11-03 14:50:22 +02:00
Bahadir Balban
0f9ea9674c Progress on capabilities
Capabilities will be shared among collection of threads. A pager
will have a right to share its own capabilities with its space,
its thread group and its container.

Currently sharing is possible with only all of the caps. Next,
it will be support for cap splitting, granting, and partial sharing
and granting.
2009-10-22 14:04:25 +03:00
Amit Mahajan
8bb1069553 Adding mechanism to have differnt run and load address for pagers 2009-10-21 16:45:06 +05:30
Bahadir Balban
d2fee25924 Simplified/Cleaned up pager initialization in the kernel 2009-10-20 22:20:37 +03:00
Bahadir Balban
9c06bea41a Changed name of kernel_container to kernel_resources 2009-10-20 13:14:49 +03:00
Bahadir Balban
cfa35e4a66 Added support for faulty pagers and their threads to become zombies
Added support for pagers that fault to suspend and become zombies
along with all the threads that they manage. Zombie killing is to
be done at a later time, from this special zombie queue.

The implementation works same as a suspension, with the added action
that the thread is moved to a queue in kernel container.
2009-10-19 18:48:55 +03:00
Bahadir Balban
fa6629800f Coding style changes in kernel startup 2009-09-27 11:47:40 +03:00
Bora Sahin
9bb96108ed Container number is received from the configuration system. 2009-09-25 13:43:33 +03:00
Bahadir Balban
117e3482b6 Capabilities for quantitative resources working.
Status:
- Capability initialization is a bit hacky with dummy current etc.
- All container caps belong to the pager
- Tasks refer to their pager's capabilities for mutex allocation - Hacky.
- Kernel container keeps quantitative caps and memory caps in separate lists - Hacky.

These will all evolve and get fixed.
2009-08-22 23:41:53 +03:00
Bahadir Balban
d3d072e47d Capability accounting for quantitative capabilities - First part done.
Need to make sure accounting charges correct containers during init.
Therefore kernel resource spending must also be accounted for.
2009-08-22 12:09:51 +03:00
Bahadir Balban
de087eb1f8 Clean up to kernel code, Added `used' field to capabilities
With the addition of used field, capability structure can be
used for resource accounting over the capability.
2009-08-21 12:10:34 +03:00
Bahadir Balban
6a42491751 Fixed uninitialized local vars. 2009-08-14 12:54:54 +03:00
Bahadir Balban
c7404c7322 Fixed boot messages 2009-08-11 15:28:39 +03:00
Bahadir Balban
f82db61519 Added freeing/unmapping of boot memory 2009-08-11 15:01:27 +03:00
Bahadir Balban
519bfba8c7 Container/Pager/Capability initialization that works.
Need to safely free boot memory and jump to first task's stack.
Need to test scheduler and all syscall entries.
2009-08-04 13:56:11 +03:00
Bahadir Balban
7e8845abf8 Code that compiles until initialization of containers and pagers. 2009-08-02 23:43:14 +03:00
Bahadir Balban
82807c2f0a Code that works until after allocating pgd and pmd caches. 2009-07-29 20:01:40 +03:00
Bahadir Balban
723cf7bde9 Code that compiles and works up to initializing the first memcache. 2009-07-29 19:08:29 +03:00
Bahadir Balban
dd8f773f10 Some more progress on resource management and boot up. 2009-07-29 13:32:38 +03:00