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/fs/fatfs.c

    r633 r635  
    10691069{
    10701070    kmem_req_t    req;
    1071         req.type    = KMEM_FATFS_CTX;
    1072         req.size    = sizeof(fatfs_ctx_t);
     1071        req.type    = KMEM_KCM;
     1072        req.order   = bits_log2( sizeof(fatfs_ctx_t) );
    10731073    req.flags   = AF_KERNEL | AF_ZERO;
    10741074
    1075         return (fatfs_ctx_t *)kmem_alloc( &req );
     1075        return kmem_alloc( &req );
    10761076}
    10771077
     
    11011101    // - temporarily the BOOT sector
    11021102    // - permanently the FS_INFO sector
    1103         req.type    = KMEM_512_BYTES;
     1103        req.type    = KMEM_KCM;
     1104    req.order   = 9;                    // 512 bytes
    11041105    req.flags   = AF_KERNEL | AF_ZERO;
    1105         buffer      = (uint8_t *)kmem_alloc( &req );
    1106     buffer_xp   = XPTR( local_cxy , buffer );
     1106        buffer      = kmem_alloc( &req );
    11071107
    11081108    if( buffer == NULL )
     
    11121112    }
    11131113     
     1114    buffer_xp   = XPTR( local_cxy , buffer );
     1115
    11141116    // load the BOOT record from device
    11151117    error = dev_ioc_sync_read( buffer_xp , 0 , 1 );
     
    12421244{
    12431245    kmem_req_t    req;
    1244     req.type = KMEM_FATFS_CTX;
     1246    req.type = KMEM_KCM;
    12451247    req.ptr  = fatfs_ctx;
    12461248    kmem_free( &req );
Note: See TracChangeset for help on using the changeset viewer.