Changeset 530 for trunk/kernel
- Timestamp:
- Sep 21, 2018, 10:19:38 PM (6 years ago)
- Location:
- trunk/kernel
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/fs/vfs.c
r528 r530 1127 1127 cxy_t vfs_cluster_random_select( void ) 1128 1128 { 1129 uint32_t x_ size = LOCAL_CLUSTER->x_size;1130 uint32_t y_ size = LOCAL_CLUSTER->y_size;1129 uint32_t x_max = LOCAL_CLUSTER->x_max; // [FIXME] 1130 uint32_t y_max = LOCAL_CLUSTER->y_max; // [FIXME] 1131 1131 uint32_t y_width = LOCAL_CLUSTER->y_width; 1132 uint32_t index = ( hal_get_cycles() + hal_get_gid() ) % (x_ size * (y_size - 1)); // [FIXME]1133 uint32_t x = index / (y_size - 1); // [FIXME]1134 uint32_t y = index % (y_size - 1); // [FIXME]1132 uint32_t index = ( hal_get_cycles() + hal_get_gid() ) % (x_max * y_max); // [FIXME] 1133 uint32_t x = index / y_max; // [FIXME] 1134 uint32_t y = index % y_max; // [FIXME] 1135 1135 1136 1136 return (x<<y_width) + y; -
trunk/kernel/kern/cluster.c
r529 r530 71 71 cluster->x_size = info->x_size; 72 72 cluster->y_size = info->y_size; 73 cluster->x_max = info->x_max; // [FIXME] 74 cluster->y_max = info->y_max; // [FIXME] 73 75 cluster->io_cxy = info->io_cxy; 74 76 … … 98 100 99 101 // initialises DQDT 100 cluster->dqdt_root_level = dqdt_init( info->x_ size,101 info->y_ size - 1, // [FIXME]102 cluster->dqdt_root_level = dqdt_init( info->x_max, // [FIXME] 103 info->y_max, // [FIXME] 102 104 info->y_width ) - 1; 103 105 -
trunk/kernel/kern/cluster.h
r485 r530 105 105 uint32_t x_size; /*! number of clusters in a row (can be 1) */ 106 106 uint32_t y_size; /*! number of clusters in a column (can be 1) */ 107 uint32_t x_max; // [FIXME] 108 uint32_t y_max; // [FIXME] 107 109 cxy_t io_cxy; /*! io cluster identifier */ 108 110 uint32_t dqdt_root_level; /*! index of root node in dqdt_tbl[] */ -
trunk/kernel/kern/kernel_init.c
r528 r530 250 250 for( x = 0 ; x < info->x_size ; x++ ) 251 251 { 252 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]252 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 253 253 { 254 254 cxy_t cxy = (x<<info->y_width) + y; … … 316 316 for( x = 0 ; x < info->x_size ; x++ ) 317 317 { 318 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]318 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 319 319 { 320 320 cxy_t cxy = (x<<info->y_width) + y; … … 439 439 440 440 // compute target cluster for chdev[func,channel,direction] 441 uint32_t offset = ext_chdev_gid % ( info->x_size * (info->y_ size - 1) ); // [FIXME]442 uint32_t cx = offset / (info->y_ size - 1); // [FIXME]443 uint32_t cy = offset % (info->y_ size - 1); // [FIXME]441 uint32_t offset = ext_chdev_gid % ( info->x_size * (info->y_max) ); // [FIXME] 442 uint32_t cx = offset / (info->y_max); // [FIXME] 443 uint32_t cy = offset % (info->y_max); // [FIXME] 444 444 uint32_t target_cxy = (cx<<info->y_width) + cy; 445 445 … … 479 479 for( x = 0 ; x < info->x_size ; x++ ) 480 480 { 481 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]481 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 482 482 { 483 483 cxy_t cxy = (x<<info->y_width) + y; … … 562 562 for( x = 0 ; x < info->x_size ; x++ ) 563 563 { 564 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]564 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 565 565 { 566 566 cxy_t cxy = (x<<info->y_width) + y; … … 576 576 for( x = 0 ; x < info->x_size ; x++ ) 577 577 { 578 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]578 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 579 579 { 580 580 cxy_t cxy = (x<<info->y_width) + y; … … 613 613 for( x = 0 ; x < info->x_size ; x++ ) 614 614 { 615 for( y = 0 ; y < info->y_ size - 1; y++ ) // [FIXME]615 for( y = 0 ; y < info->y_max; y++ ) // [FIXME] 616 616 { 617 617 cxy_t cxy = (x<<info->y_width) + y; … … 800 800 ///////////////////////////////////////////////////////////////////////////////// 801 801 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 802 (info->x_size * (info->y_ size - 1)) );802 (info->x_size * (info->y_max)) ); 803 803 barrier_wait( &local_barrier , info->cores_nr ); 804 804 ///////////////////////////////////////////////////////////////////////////////// … … 838 838 ///////////////////////////////////////////////////////////////////////////////// 839 839 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 840 (info->x_size * (info->y_ size - 1)) );840 (info->x_size * (info->y_max)) ); 841 841 barrier_wait( &local_barrier , info->cores_nr ); 842 842 ///////////////////////////////////////////////////////////////////////////////// … … 865 865 //////////////////////////////////////////////////////////////////////////////// 866 866 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 867 (info->x_size * (info->y_ size - 1)) );867 (info->x_size * (info->y_max)) ); 868 868 barrier_wait( &local_barrier , info->cores_nr ); 869 869 //////////////////////////////////////////////////////////////////////////////// … … 898 898 ///////////////////////////////////////////////////////////////////////////////// 899 899 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 900 (info->x_size * (info->y_ size - 1)) );900 (info->x_size * (info->y_max)) ); 901 901 barrier_wait( &local_barrier , info->cores_nr ); 902 902 ///////////////////////////////////////////////////////////////////////////////// … … 1003 1003 ///////////////////////////////////////////////////////////////////////////////// 1004 1004 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1005 (info->x_size * (info->y_ size - 1)) );1005 (info->x_size * (info->y_max)) ); 1006 1006 barrier_wait( &local_barrier , info->cores_nr ); 1007 1007 ///////////////////////////////////////////////////////////////////////////////// … … 1064 1064 ///////////////////////////////////////////////////////////////////////////////// 1065 1065 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1066 (info->x_size * (info->y_ size - 1)) );1066 (info->x_size * (info->y_max)) ); 1067 1067 barrier_wait( &local_barrier , info->cores_nr ); 1068 1068 ///////////////////////////////////////////////////////////////////////////////// … … 1099 1099 ///////////////////////////////////////////////////////////////////////////////// 1100 1100 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1101 (info->x_size * (info->y_ size - 1)) );1101 (info->x_size * (info->y_max)) ); 1102 1102 barrier_wait( &local_barrier , info->cores_nr ); 1103 1103 ///////////////////////////////////////////////////////////////////////////////// … … 1136 1136 ///////////////////////////////////////////////////////////////////////////////// 1137 1137 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1138 (info->x_size * (info->y_ size - 1)) );1138 (info->x_size * (info->y_max)) ); 1139 1139 barrier_wait( &local_barrier , info->cores_nr ); 1140 1140 ///////////////////////////////////////////////////////////////////////////////// … … 1162 1162 ///////////////////////////////////////////////////////////////////////////////// 1163 1163 if( core_lid == 0 ) remote_barrier( XPTR( 0 , &global_barrier ), // [FIXME] 1164 (info->x_size * (info->y_ size - 1)) );1164 (info->x_size * (info->y_max)) ); 1165 1165 barrier_wait( &local_barrier , info->cores_nr ); 1166 1166 ///////////////////////////////////////////////////////////////////////////////// -
trunk/kernel/mm/vmm.c
r528 r530 1384 1384 if( flags & VSEG_DISTRIB ) // distributed => cxy depends on vpn LSB 1385 1385 { 1386 uint32_t x_ size = LOCAL_CLUSTER->x_size;1387 uint32_t y_ size = LOCAL_CLUSTER->y_size;1386 uint32_t x_max = LOCAL_CLUSTER->x_max; // [FIXME] 1387 uint32_t y_max = LOCAL_CLUSTER->y_max; // [FIXME] 1388 1388 uint32_t y_width = LOCAL_CLUSTER->y_width; 1389 uint32_t index = vpn & ((x_ size * (y_size - 1)) - 1); // [FIXME]1390 uint32_t x = index / (y_size - 1); // [FIXME]1391 uint32_t y = index % (y_size - 1); // [FIXME]1389 uint32_t index = vpn & ((x_max * y_max) - 1); // [FIXME] 1390 uint32_t x = index / y_max; // [FIXME] 1391 uint32_t y = index % y_max; // [FIXME] 1392 1392 page_cxy = (x<<y_width) + y; 1393 1393 }
Note: See TracChangeset
for help on using the changeset viewer.