Changeset 635 for trunk/kernel/mm/page.c


Ignore:
Timestamp:
Jun 26, 2019, 11:42:37 AM (5 years ago)
Author:
alain
Message:

This version is a major evolution: The physical memory allocators,
defined in the kmem.c, ppm.c, and kcm.c files have been modified
to support remote accesses. The RPCs that were previously user
to allocate physical memory in a remote cluster have been removed.
This has been done to cure a dead-lock in case of concurrent page-faults.

This version 2.2 has been tested on a (4 clusters / 2 cores per cluster)
TSAR architecture, for both the "sort" and the "fft" applications.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/mm/page.c

    r634 r635  
    4646
    4747        remote_busylock_init( XPTR( local_cxy , &page->lock ), LOCK_PAGE_STATE );
    48 
    49         list_entry_init( &page->list );
    5048}
    5149
     
    9391}
    9492
     93
     94
     95
     96///////////////////////////////////////////////
     97inline void page_remote_init( xptr_t  page_xp )
     98{
     99        hal_remote_memset( page_xp , 0 , sizeof(page_t) );
     100
     101    cxy_t    page_cxy = GET_CXY( page_xp );
     102    page_t * page_ptr = GET_PTR( page_xp );
     103
     104        remote_busylock_init( XPTR( page_cxy , &page_ptr->lock ), LOCK_PAGE_STATE );
     105}
    95106
    96107////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.