Add relative cpulists for loads
jiraProject== RHEL-25206 Signed-off-by: Tomas Glozar <tglozar@redhat.com>
This commit is contained in:
		
							parent
							
								
									403fe3b32a
								
							
						
					
					
						commit
						6d0cbf7a80
					
				
							
								
								
									
										70
									
								
								rteval-Add-relative-cpulists-for-loads.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								rteval-Add-relative-cpulists-for-loads.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | |||||||
|  | From 636701e66cb98b979948b7a47320809c734e2a9e Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Tomas Glozar <tglozar@redhat.com> | ||||||
|  | Date: Thu, 4 Apr 2024 10:14:38 +0200 | ||||||
|  | Subject: [PATCH] rteval: Add relative cpulists for loads | ||||||
|  | 
 | ||||||
|  | Relative cpulists were added for measurements in 64ce7848 ("rteval: Add | ||||||
|  | relative cpulists for measurements"). It was observed since that this | ||||||
|  | feature would also be useful for load cpulists, for example when the | ||||||
|  | measurements are performed externally and rteval is only used to run | ||||||
|  | loads. | ||||||
|  | 
 | ||||||
|  | Add support for relative cpulists also for loads. This works the same | ||||||
|  | way as for measurements using parse_cpulist_from_config, only difference | ||||||
|  | is there is no --loads-run-on-isolcpus option. That is, --loads-cpulist | ||||||
|  | now also takes lists with addition (+) and removal (-) of CPUs against | ||||||
|  | the default list, e.g. +0,1,-7,8. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Tomas Glozar <tglozar@redhat.com> | ||||||
|  | Signed-off-by: John Kacur <jkacur@redhat.com> | ||||||
|  | ---
 | ||||||
|  |  rteval-cmd | 17 ++++++++++------- | ||||||
|  |  1 file changed, 10 insertions(+), 7 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/rteval-cmd b/rteval-cmd
 | ||||||
|  | index ed13af3..c72bc61 100755
 | ||||||
|  | --- a/rteval-cmd
 | ||||||
|  | +++ b/rteval-cmd
 | ||||||
|  | @@ -331,29 +331,32 @@ if __name__ == '__main__':
 | ||||||
|  |   | ||||||
|  |          ldcfg = config.GetSection('loads') | ||||||
|  |          msrcfg = config.GetSection('measurement') | ||||||
|  | +        # Remember if cpulists were explicitly set by the user before running
 | ||||||
|  | +        # parse_cpulist_from_config, which generates default value for them
 | ||||||
|  |          msrcfg_cpulist_present = msrcfg.cpulist != "" | ||||||
|  | -        # Parse measurement cpulist using parse_cpulist_from_config to account for run-on-isolcpus
 | ||||||
|  | -        # and relative cpusets
 | ||||||
|  | +        ldcfg_cpulist_present = ldcfg.cpulist != ""
 | ||||||
|  | +        # Parse cpulists using parse_cpulist_from_config to account for
 | ||||||
|  | +        # run-on-isolcpus and relative cpusets
 | ||||||
|  |          cpulist = parse_cpulist_from_config(msrcfg.cpulist, msrcfg.run_on_isolcpus) | ||||||
|  |          if msrcfg_cpulist_present and not cpulist_utils.is_relative(msrcfg.cpulist) and msrcfg.run_on_isolcpus: | ||||||
|  |              logger.log(Log.WARN, "ignoring --measurement-run-on-isolcpus, since cpulist is specified") | ||||||
|  |          msrcfg.cpulist = collapse_cpulist(cpulist) | ||||||
|  | -        if ldcfg.cpulist:
 | ||||||
|  | -            ldcfg.cpulist = remove_offline(ldcfg.cpulist)
 | ||||||
|  | +        cpulist = parse_cpulist_from_config(ldcfg.cpulist)
 | ||||||
|  | +        ldcfg.cpulist = collapse_cpulist(cpulist)
 | ||||||
|  |          # if we only specified one set of cpus (loads or measurement) | ||||||
|  |          # default the other to the inverse of the specified list | ||||||
|  | -        if not ldcfg.cpulist and msrcfg_cpulist_present:
 | ||||||
|  | +        if not ldcfg_cpulist_present and msrcfg_cpulist_present:
 | ||||||
|  |              tmplist = expand_cpulist(msrcfg.cpulist) | ||||||
|  |              tmplist = SysTopology().invert_cpulist(tmplist) | ||||||
|  |              tmplist = cpulist_utils.online_cpulist(tmplist) | ||||||
|  |              ldcfg.cpulist = collapse_cpulist(tmplist) | ||||||
|  | -        if not msrcfg_cpulist_present and ldcfg.cpulist:
 | ||||||
|  | +        if not msrcfg_cpulist_present and ldcfg_cpulist_present:
 | ||||||
|  |              tmplist = expand_cpulist(ldcfg.cpulist) | ||||||
|  |              tmplist = SysTopology().invert_cpulist(tmplist) | ||||||
|  |              tmplist = cpulist_utils.online_cpulist(tmplist) | ||||||
|  |              msrcfg.cpulist = collapse_cpulist(tmplist) | ||||||
|  |   | ||||||
|  | -        if ldcfg.cpulist:
 | ||||||
|  | +        if ldcfg_cpulist_present:
 | ||||||
|  |              logger.log(Log.DEBUG, f"loads cpulist: {ldcfg.cpulist}") | ||||||
|  |          # if --onlyload is specified msrcfg.cpulist is unused | ||||||
|  |          if msrcfg_cpulist_present and not rtevcfg.onlyload: | ||||||
|  | -- 
 | ||||||
|  | 2.44.0 | ||||||
|  | 
 | ||||||
| @ -1,6 +1,6 @@ | |||||||
| Name:		rteval | Name:		rteval | ||||||
| Version:	3.7 | Version:	3.7 | ||||||
| Release:	10%{?dist} | Release:	11%{?dist} | ||||||
| Summary:	Utility to evaluate system suitability for RT Linux | Summary:	Utility to evaluate system suitability for RT Linux | ||||||
| 
 | 
 | ||||||
| Group:		Development/Tools | Group:		Development/Tools | ||||||
| @ -41,6 +41,7 @@ Patch6: rteval-Minor-improvements-to-CpuList-class.patch | |||||||
| Patch7: rteval-Convert-CpuList-class-to-a-module.patch | Patch7: rteval-Convert-CpuList-class-to-a-module.patch | ||||||
| Patch8: rteval-Add-relative-cpulists-for-measurements.patch | Patch8: rteval-Add-relative-cpulists-for-measurements.patch | ||||||
| Patch9: rteval-Implement-initial-dmidecode-support.patch | Patch9: rteval-Implement-initial-dmidecode-support.patch | ||||||
|  | Patch10: rteval-Add-relative-cpulists-for-loads.patch | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| The rteval script is a utility for measuring various aspects of | The rteval script is a utility for measuring various aspects of | ||||||
| @ -62,6 +63,7 @@ to the screen. | |||||||
| %patch7 -p1 | %patch7 -p1 | ||||||
| %patch8 -p1 | %patch8 -p1 | ||||||
| %patch9 -p1 | %patch9 -p1 | ||||||
|  | %patch10 -p1 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| %{__python3} setup.py build | %{__python3} setup.py build | ||||||
| @ -83,6 +85,10 @@ to the screen. | |||||||
| %{_bindir}/rteval | %{_bindir}/rteval | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Apr 10 2024 Tomas Glozar <tglozar@redhat.com> - 3.7-11 | ||||||
|  | - Add relative cpulists for loads | ||||||
|  | Resolves: RHEL-25206 | ||||||
|  | 
 | ||||||
| * Tue Apr 09 2024 Tomas Glozar <tglozar@redhat.com> - 3.7-10 | * Tue Apr 09 2024 Tomas Glozar <tglozar@redhat.com> - 3.7-10 | ||||||
| - Add dependency on procps-ng which was missing in minimal environments | - Add dependency on procps-ng which was missing in minimal environments | ||||||
| Resolves: RHEL-31921 | Resolves: RHEL-31921 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user