summaryrefslogtreecommitdiffstats
path: root/src/kernel
Commit message (Collapse)AuthorAgeFilesLines
...
* Support task_wait / task_wait_tid syscalls:Patrick Williams2011-10-2410-42/+317
| | | | | | | | | | | | | | | | | | | | | | | | | - Add task_end2 syscall to allow pthread_exit-like retval. - Add/maintain task states. - Create task parent/child tracking tree. - Add task_detach function. - Implement wait syscalls. Make task_exec caller the parent of spawned task: Previously the task_exec call caused a message to the VFS task, which called task_create and returned the tid in response to the message. This causes the parent of the spawned task to appear to be the VFS task. Modify task_exec / VFS handling to instead return the entry point address on the message and have task_exec call task_create directly itself. Change-Id: I6b6796f45875de37b1ab01e7596639b073820b95 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/443 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
* Flush/Release/Evict pages functionalityMatthew Barth2011-10-105-14/+202
| | | | | | | Change-Id: Ic0bb4122164e11f6d13e6850abf8ae9bd32caea2 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/393 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* pge permission functionality..Missy Connell2011-10-063-4/+156
| | | | | | | | | | Add code that applies the permissions requested. Add merge conflicts Change-Id: I5911406ba4670714faaf4880399da71692559397 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/353 Tested-by: Jenkins Server Reviewed-by: Melissa J. Connell <missyc@us.ibm.com>
* Fix TLBie bugMatthew Barth2011-10-031-2/+6
| | | | | | | Change-Id: Iacedac6d963fcc754d4ef595d4512be35b0bbc59 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/392 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Mechanism to detect low memory and cast out older pageDoug Gilbert2011-09-198-2/+217
| | | | | | | | Change-Id: Icce8e01f3d1cd2942f2b9ff802993da0441535ee Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/344 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
* Add debug message for MC exception.Patrick Williams2011-09-162-1/+19
| | | | | | | | Change-Id: Ic8c0a5567f4f1e008014a4d54fb640dda6669cbc Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/346 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Adding new interface to update page permissions.. Interface only.Missy Connell2011-09-153-2/+46
| | | | | | | | | | | | Added changes from review comments Updated new enum for system call Change-Id: I8a55b5e2f67427e59263eae31913e438ca782006 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/331 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Melissa J. Connell <missyc@us.ibm.com>
* Centralizing a few of the memory-related constants to avoid someDan Crowell2011-09-145-14/+9
| | | | | | | | | | | | redundancies and also to have a single place to update the memory map if needed. See Task 3507. Change-Id: I8f2d632983abe6d6798784e975cd93057018594b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/330 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Remove page by given TYPE system callMatthew Barth2011-09-142-34/+52
| | | | | | | Change-Id: Iffdd97a75944abbd52dbc72d3aa1394b771fd371 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/333 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Return code cleanups.Patrick Williams2011-09-133-7/+16
| | | | | | | Change-Id: I375c2f895f28b73948aa384dda781b31f027719b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/334 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Additional good/error path checks for creating blockMatthew Barth2011-09-122-7/+5
| | | | | | | Change-Id: If3bd74e0ee5ca4177d4bac506a4433ac3e1e778d Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/289 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* FP Denormalization support.Patrick Williams2011-09-124-0/+204
| | | | | | | Change-Id: I529e6f072993c0dd0a638fe7e53bcc871e6a928c Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/326 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Floating point support.Patrick Williams2011-09-124-1/+136
| | | | | | | Change-Id: I859cac1c01bf631d12223702d68813b45339b65f Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/295 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Adding a basic interface and implementation to the Segment/BlockDan Crowell2011-09-064-22/+223
| | | | | | | | | | | | | path to update the LRU statistics when the PageTableManager code clears the reference bit. This is not meant to be a complete implementation (different Task is open for that). This is Task 3400. Change-Id: If67efd16ead6f68a74f5f5a698013c1b852864d9 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/231 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Dynamic stack support.Patrick Williams2011-08-316-14/+234
| | | | | | | | | | - Create stack segment. - Allocate stack blocks on stack create. Change-Id: Ida90055afb68f208c479b5fdc19d3d931d026105 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/271 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Ensure scratch operations happen on master core.Patrick Williams2011-08-314-161/+229
| | | | | | | | Change-Id: I970d645108de041d410599847edce877cb794015 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/275 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Page align vaddr for page fault msgs.Patrick Williams2011-08-311-3/+6
| | | | | | | | Change-Id: Ib582703a77a7000440db2fec88c6a76644ec35bc Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/284 Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* map virtual address to physical address in kernelDoug Gilbert2011-08-255-23/+107
| | | | | | | | Change-Id: Id18e604facd517598a18968af3dff927026ad894 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/272 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add environment var to remove debug messages.Patrick Williams2011-08-243-23/+24
| | | | | | | | | | | | - Add printkd function. - Create HOSTBOOT_DEBUG env var for printk. - Update trace interfaces to utilize HOSTBOOT_DEBUG. - Fix compile errors due to unused variables. Change-Id: Ib18c3ecd51ca333e0118949bf35476e9c5aa46a7 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/273 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Allocate zero'd page in block.Patrick Williams2011-08-241-0/+9
| | | | | | | Change-Id: Ieb56aa89190d7efd56c357245b24a979ee7ad79a Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/270 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Add copyright headers to all source files.Patrick Williams2011-08-2425-0/+550
| | | | | | | Change-Id: I205f2409e56032cfc0aaf01d7e26d357f0b86373 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/277 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server
* Handle response from messages registered to a block within the base segmentMatthew Barth2011-08-234-5/+49
| | | | | | | Change-Id: I65be2258e5e6bd707797415a5376fd94c3bab68a Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/265 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Add initial scratch (sprc/sprd) support.Patrick Williams2011-08-222-2/+22
| | | | | | | Change-Id: Ica416251241a2881459b2eb1ae0ad3c746de1200 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/267 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Create initial stack-frame from userspace.Patrick Williams2011-08-222-9/+19
| | | | | | | | Change-Id: Ie1133bd079e7b9a8f2f82daa06efc426bf0fd0d6 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/268 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* VMM Fixes:Patrick Williams2011-08-192-17/+22
| | | | | | | | | | | | - Block-traversal logic. - Memory leaks in message interface. - Race condition in message interface. Change-Id: I7b341b174593e04624975cdd589745587e461e14 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/263 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Finishing up PNOR RP code (RTC Task 3440)Dan Crowell2011-08-172-0/+3
| | | | | | | | | | | | | | | | | -Add calls to mm_alloc_block -Fix error responses to message -Cleanup some error handling -Code review updates Final piece of the PNOR puzzle - Task 3389 -Also added a check to autocitest that will catch initialization fails. -Added some error printks to message interface -Disabled test_messageReadWrite testcase Change-Id: I4f1207138a6cf4f86cf2b6f3f81fc5885b02699d Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/252 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Implement Kernel->User-space message bridge.Patrick Williams2011-08-164-21/+185
| | | | | | | Change-Id: Icf6fc9e10b1c39e981dddf180607b710c597112b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/249 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Support msgq and paging data for blocks in base segmentMatthew Barth2011-08-152-9/+59
| | | | | | | Change-Id: I4f1775b6a843140be97f3c328155aa1654086723 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/254 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Allocate block system call stubMatthew Barth2011-08-103-7/+36
| | | | | | | Change-Id: Ief3476b5306bc231c9d3044b2736fcd195e840b1 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/243 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Update scratch SPR #s for P8.Patrick Williams2011-08-103-15/+46
| | | | | | | | Change-Id: Ia063a66b705b3272b7578ece420c84ac9c4c3d26 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/224 Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Jenkins Server
* Upgrade Salerno memory size to 4MB.Patrick Williams2011-08-091-1/+1
| | | | | | | Change-Id: Icb089ac7896d12354b48377611d872b782b91652 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/225 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Clean up mutex issues.Patrick Williams2011-08-092-2/+9
| | | | | | | | | | | | | - Final fix for mutex bug. - Document weak-consistency decisions in mutex code. - Prevent aggressive optimizations around lwsync/isync instrs. - Fix minor bug in futex_wait system call. - Optimize futex path with likely/unlikely hints. Change-Id: I26b54dee7e45bcb42195f730474b350b44f53cfc Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/233 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Device segment MMIO map & unmap system callsMatthew Barth2011-08-085-20/+188
| | | | | | | Change-Id: I233c2677909c0c16536133c189ebbd21e4415e22 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/208 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* More PNOR RP work - Task 3440 (Story 3330)Dan Crowell2011-08-081-19/+19
| | | | | | | | | | | | | | | | | Also includes testcase work for Task 3388 Change-Id: Ib4ff920f351554fe457c171f601a38809ca6ac6f Functional PNOR RP code that works with the PNOR DD. Still missing the complete path but should be ready for use by the next level up. Task 3440 Change-Id: Id32a919f88da636c341116444e557387beaccdb2 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/230 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: ADAM R. MUHLE <armuhle@us.ibm.com>
* Add handling for HvEmu exception.Patrick Williams2011-08-012-2/+20
| | | | | | | | Change-Id: I03a7460b347b47f4653a6f457d1d7711fc0a0512 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/209 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Add userspace syscalls for PVR.Patrick Williams2011-07-294-25/+43
| | | | | | | | Change-Id: I27d51e0e9f2396a4ddd45d98d6b1004a17c9db46 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/219 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Reduce memory footprint to 3MB.Patrick Williams2011-07-295-20/+82
| | | | | | | Change-Id: I309bc63bdb27baa21f65de05e12324b9c4ce3407 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/212 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Add usage statistics to PageManager.Patrick Williams2011-07-291-1/+11
| | | | | | | | | Change-Id: Ic7f158b07b5b37465af5b129153d63645ced1bad Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/205 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Reduce working threads to first core.Patrick Williams2011-07-252-22/+64
| | | | | | | | | | | | | This is required to reduce the memory footprint of the kernel so we can fit within 2MB. This patch will cause (in simics) all other cores/threads to execute a 'doze' instruction and cease executing. In VBU, only 1 core will be active anyhow. Change-Id: If1bdc01393b02d802ba7595a88dcf3331efc2d4e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/203 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
* VMM Improvements.Patrick Williams2011-07-2011-209/+419
| | | | | | | | | | | - Segment Manager - Base / Device Segments - Block for Base image. Change-Id: Ic0c058e5c5b210ec1c48d30f6ed9f9837d74a3c8 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/193 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Shutdown and post status on HostBoot completionMike Jones2011-07-192-1/+51
| | | | | | | | Change-Id: If2ab46af85065b29695a1186ed331fd835944eb4 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/204 Tested-by: Jenkins Server Reviewed-by: Mark W. Wenning <wenning@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Add user-space stub for task entry.Patrick Williams2011-07-182-6/+30
| | | | | | | | | | | This will prevent kernel space from needing to dereference user-space addresses for starting a task, which is safer and is easier for VMM. Change-Id: Icad3b832550cedbf291ed8b032840f4049fba18e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/202 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Initial checkin of PageTableManager - RTC:3195Dan Crowell2011-07-143-34/+947
| | | | | | | | | | | Add new delRange method to delete based on page numbers, part of RTC:3195 Plus code review comments from previous commit - http://gfw160.austin.ibm.com:8080/gerrit/188 Change-Id: Ie45365162cf1367c5c0dcc3afc2907a6ddfa53d3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/188 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
* Improve assert handling and options.Patrick Williams2011-07-061-1/+1
| | | | | | | | | | | | | - Allow a custom assert trace as an optional parameter. - Call a trace function instead of printk for most cases. - Provide a critical library assert (for syslibs, trace, etc.) - Provide a kassert function for kernel code. Change-Id: If24d57d0832a587258503b3fd0046c21da3712b5 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/159 Tested-by: Jenkins Server Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Reviewed-by: CAMVAN T. NGUYEN <ctnguyen@us.ibm.com>
* Add device segment to SLB initMatthew Barth2011-06-241-0/+7
| | | | | | | Change-Id: Ia0c9bcf4840a31808018f595875d99fa6e282e2f Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/155 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Remove heap allocation of xscom mutex.Patrick Williams2011-06-241-1/+2
| | | | | | | | | | | | | | Since mutexes are simply a uint64 with a static initializer, the xscom mutex is now a instance variable directly in the cpu object. Remove unneeded mutex_create function and changed the behavior of mutex_destroy. Change-Id: If6e1d1bf0083c32ef9e7502d27678811bdaf7e1e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/150 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com>
* Set up initial task link-register to point to 'task_end' function.Patrick Williams2011-06-201-0/+9
| | | | | | | | Change-Id: Id1b122d789b84eebd75feb3bdb7e1ca222e6d76e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/147 Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Mark W. Wenning <wenning@us.ibm.com>
* Initial futex supportdgilbert2011-06-173-67/+127
| | | | | | | | | Change-Id: I51a4f1117085ce23c7993c1a38e4124596636726 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/141 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Create per-CPU mutex for XSCOM usage.Patrick Williams2011-06-081-0/+1
| | | | | | | | Change-Id: I76ad5c1d553d544b52910afd82e2716781ea13b9 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/140 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
* Add HMER access syscalls (as fastpath).Patrick Williams2011-06-022-7/+41
| | | | | | | | Change-Id: Icc7494986d19950a18cc9ee53fd5125c86096a72 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/105 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
OpenPOWER on IntegriCloud