Jeremy Soller
73a71a7d85
Increase size of kernel heap when live disk is loaded
2017-06-17 14:32:31 -06:00
Jeremy Soller
85c02365c9
Fix overallocation
2017-06-14 20:26:05 -06:00
Jeremy Soller
c9cbdab9f1
Demangle symbols
2017-06-14 20:25:49 -06:00
Jeremy Soller
7ef2401db3
Reenable preemption
2017-06-14 20:25:38 -06:00
Jeremy Soller
9b19ab9439
Improve method of getting symbol name
2017-06-13 21:56:20 -06:00
Jeremy Soller
acab23d1e1
Add symbol lookup (still very WIP)
2017-06-13 21:43:37 -06:00
Jeremy Soller
d6354aeb56
Refactor kernel mapping so that symbol table is mapped
2017-06-13 20:42:04 -06:00
Jeremy Soller
8b05863ebb
Disable preemption until paging bug is fixed
2017-06-13 19:10:32 -06:00
Jeremy Soller
e3020db04f
Better messages on unmapping failure
2017-06-11 08:40:27 -06:00
Jeremy Soller
8d89925842
Align ELF segments to avoid subtract overflow
2017-06-04 18:34:45 -06:00
Jeremy Soller
138463b74a
Merge pull request #21 from ids1024/unique
...
Update for changes in std::ptr::Unique API
2017-06-02 20:56:01 -06:00
Ian Douglas Scott
3c5b262b0e
Update for changes in std::ptr::Unique API
2017-05-21 13:44:10 -07:00
Jeremy Soller
4d2808a012
Remove free count print
2017-05-12 21:04:52 -06:00
Jeremy Soller
32b0c06314
Remove hardcoded live filesystem
2017-05-11 21:16:07 -06:00
Jeremy Soller
62d3f4bd93
Add Xargo support
2017-05-10 21:38:40 -06:00
bjorn3
586f249069
Add trailing newline to Cargo.toml
2017-04-29 17:52:55 +02:00
bjorn3
6f6f8f7391
Check multicore code even if disabled
2017-04-29 17:46:36 +02:00
bjorn3
37b4ac151b
Fix some warnings
2017-04-29 17:45:43 +02:00
Jeremy Soller
b3a25bd3a3
Merge pull request #14 from bjorn3/ls_root_scheme
...
Ls root scheme
2017-04-29 06:49:55 -06:00
Jeremy Soller
d8630faccb
Merge pull request #15 from bjorn3/remove_pit_ticks_assert
...
Remove PIT_TICKS assert
2017-04-29 06:40:28 -06:00
bjorn3
248cfa51ae
Remove PIT_TICKS assert
2017-04-29 10:46:07 +02:00
bjorn3
ca8b6f522e
Fix closing ls handle
2017-04-29 10:43:50 +02:00
bjorn3
8ffe704e7a
Remove yet another unnecessary change
2017-04-28 18:44:37 +02:00
bjorn3
4441b750cf
Remove unnecessary change
2017-04-28 18:43:39 +02:00
bjorn3
c9fdc4beae
Make it working
2017-04-28 18:42:33 +02:00
bjorn3
4c006bca48
Remove UserOrListHandle
2017-04-28 16:18:41 +02:00
bjorn3
80afcc8879
Implement listing all schemes using : scheme
2017-04-28 15:40:15 +02:00
Jeremy Soller
0a457bdced
Merge pull request #12 from InsidiousMind/fix-pit-not-context-switching
...
Fix PIT Interrupt Not Context Switching [irq]
2017-04-25 17:41:55 -06:00
Andrew Plaza
2fc4454f5e
set PIT_TICKS to 0 in context::switch()
2017-04-25 16:59:14 -04:00
Andrew Plaza
5ba02ca940
Reset PIT_TICKS to 0 on context::switch, change condition for context::switch [irq]
...
Set the counter to 0 when context is to be switched in the PIT interrupt,
and change the condition for context switching from % 10 to >= 10.
2017-04-25 14:40:23 -04:00
Andrew Plaza
7127e14b5d
Fix PIT Interrupt Not Context Switching [irq]
...
PIT interrupt should context switch or else all of redox crashes.
This will fix programs like the Snake game crashing all of Redox.
A global AtomicUSize counter was added, and a line to switch contexts
on every 10 PIT interrupts in irq.rs.
2017-04-24 22:07:32 -04:00
Jeremy Soller
dd98bfec5c
Fix typo in live scheme
2017-04-19 22:00:30 -06:00
Jeremy Soller
efd64d55e1
Bug fixes for fcntl and o_cloexec
...
Add fcntl to schemes
Fix debug: hang
2017-04-19 21:56:09 -06:00
Jeremy Soller
40ff16e42d
Add __rust_allocate_zeroed to work with newest nightly
2017-04-18 21:26:18 -06:00
Jeremy Soller
d036c667a1
Perform cloexec logic in kernel
2017-04-16 12:49:54 -06:00
Jeremy Soller
ea1150cd9b
Implement CLOEXEC for root scheme and initfs
2017-04-15 22:35:05 -06:00
Jeremy Soller
9d39317f95
Fix issue where ppid changes during child close
2017-04-15 20:29:08 -06:00
Jeremy Soller
66120cf201
Fix deallocation issues by ignoring deallocation on temporary page
2017-04-15 19:56:48 -06:00
Jeremy Soller
800e6c6de7
Free page tables during unmap, if empty
2017-04-15 19:22:17 -06:00
Jeremy Soller
1e8df4b905
Add sys:iostat
2017-04-15 09:58:03 -06:00
Jeremy Soller
a38f32c735
Add path implementation to most kernel schemes
2017-04-15 09:50:02 -06:00
Jeremy Soller
7b5873e460
Allow allocation of larger sizes
2017-04-14 21:17:31 -06:00
Jeremy Soller
b3a3caf191
Fix memmove
2017-04-14 21:07:02 -06:00
Jeremy Soller
6fef10bcb1
Merge branch 'master' of https://github.com/redox-os/kernel
2017-04-14 20:59:32 -06:00
Jeremy Soller
a9d92df5fa
Implement frame recycler
2017-04-14 20:59:27 -06:00
Jeremy Soller
903432f057
Fix issue with reusing temporary page frame
2017-04-14 20:59:01 -06:00
Jeremy Soller
7c1d5d8306
Disable SMP startup, fix issue with reusing trampoline frame
2017-04-14 20:58:23 -06:00
Jeremy Soller
0a72d1cbd8
Merge pull request #11 from pi-pi3/faster-externs
...
A faster implementation of the memcpy family
2017-04-14 16:49:58 -06:00
pi_pi3
5c1e619063
Avoid multiplication in memcpy family functions
...
Instead of multiplying everything by 8[/4], now addition is used. That
way code is prettier.
2017-04-14 14:51:04 +02:00
pi_pi3
c4fc76f844
A faster implementation of the memcpy family
...
The default implementation of the memcpy, memmove, memset and memcmp
functions in the kernel file `extern.rs` uses a naive implementation
by copying, assigning or comparing bytes ony by one. This can be slow.
This commit proposes a reimplementation of those functions by copying,
assigning or comparing in group of 8 bytes by using the u64 type and
its respective pointers instead of u8. Alternative version for 32-bit
architectures are also supplied for future compatibility with x86.
Both version first copy whatever they can with wide word types. The
tail, i.e. the final few bytes that do not fit in a dword or qword
are then copied byte by byte.
Here is a comparison of copying 64kiB (65536 bytes) on stack:
x86_64-unknown-linux-gnu: (64-bit)
| naive (ns) | fast (ns) | speedup (x)
-------|------------|-----------|------------
memcpy | 204430 | 32994 | ~6.20
memmove| 202540 | 33186 | ~6.10
memset | 163391 | 23884 | ~6.84
memcmp | 205663 | 34385 | ~5.98
i686-unknown-linux-gnu: (32-bit)
| naive (ns) | fast (ns) | speedup (x)
-------|------------|-----------|------------
memcpy | 206297 | 66858 | ~3.09
memmove| 204576 | 70326 | ~2.91
memset | 165599 | 50227 | ~3.30
memcmp | 204262 | 70572 | ~2.89
Copying on the heap behaves simmilarly.
All tests performed on Intel i5 6600K (4x4.2GHz),
ArchLinux Kernel 4.8.12-3 x86_64.
2017-04-14 14:37:32 +02:00