Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kernel] Dynamically allocate inode and file table from bootopts #1840

Merged
merged 3 commits into from
Mar 28, 2024
Merged

Conversation

ghaerr
Copy link
Owner

@ghaerr ghaerr commented Mar 28, 2024

Follow on to #1839, the internal inode and file table sizes can now changed from /bootopts.

This allows a system to be configured to use more or less inodes (default 96) or open files (default 64) than normal. Each inode entry uses 80 bytes of kernel heap, while open files use an inode and a file entry (size 14+80).

Use inode= and file= in /bootopts, along with task= to specify kernel resource sizes. It is recommended that inode= be larger than or equal to file=.

meminfo now shows the amount of limited kernel data segment memory used for the TASK, INODE, FILE and BUFH (buffer headers) used, which allow for more specialized customization of ELKS for a particular use case.

This screenshot shows ELKS running a standard configuration, with networking not running, 49k heap, 16k free, 64k buffer/buffer headers:
task, inode, file

@ghaerr ghaerr merged commit c30a10d into master Mar 28, 2024
2 checks passed
@ghaerr ghaerr deleted the file branch March 28, 2024 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant