File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -342,57 +342,13 @@ fn get_num_physical_cpus() -> usize {
342342
343343#[ cfg( target_os = "aix" ) ]
344344fn get_smt_threads_aix ( ) -> Option < usize > {
345- use std:: mem;
346-
347- const LPAR_INFO_FORMAT1 : i32 = 1 ;
348-
349- #[ repr( C ) ]
350- struct lpar_info_format1 {
351- version : i32 ,
352- pad0 : i32 ,
353- max_memory : u64 ,
354- min_memory : u64 ,
355- memory_region : u64 ,
356- dispatch_wheel_time : u64 ,
357- lpar_number : u32 ,
358- lpar_flags : u32 ,
359- max_pcpus_in_sys : u32 ,
360- min_vcpus : u32 ,
361- max_vcpus : u32 ,
362- min_lcpus : u32 ,
363- max_lcpus : u32 ,
364- minimum_capacity : u32 ,
365- maximum_capacity : u32 ,
366- capacity_increment : u32 ,
367- smt_threads : u16 ,
368- pad1 : [ u8 ; 2 ] ,
369- num_lpars : u32 ,
370- lpar_name : [ u8 ; 256 ] ,
371- desired_capacity : u32 ,
372- desired_vcpus : u32 ,
373- desired_memory : u64 ,
374- servpar_id : u32 ,
375- true_max_memory : u64 ,
376- true_min_memory : u64 ,
377- ame_max_memory : u64 ,
378- ame_min_memory : u64 ,
379- spcm_status : u32 ,
380- spcm_max : u32 ,
381- }
382-
383- extern "C" {
384- fn lpar_get_info ( command : i32 , buffer : * mut libc:: c_void , size : usize ) -> i32 ;
385- }
386-
387- let mut lpar_info: lpar_info_format1 = unsafe { mem:: zeroed ( ) } ;
388- let info_size = mem:: size_of :: < lpar_info_format1 > ( ) as usize ;
389- let ret = unsafe {
390- lpar_get_info ( LPAR_INFO_FORMAT1 , mem:: transmute ( & mut lpar_info) , info_size)
345+ let smt = unsafe {
346+ libc:: getsystemcfg ( libc:: SC_SMT_TC )
391347 } ;
392- if ret != 0 {
348+ if smt == u64 :: MAX {
393349 return None ;
394350 }
395- Some ( lpar_info . smt_threads as usize )
351+ Some ( smt as usize )
396352}
397353
398354#[ cfg( any(
You can’t perform that action at this time.
0 commit comments