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 | ||||
| Version:	3.7 | ||||
| Release:	10%{?dist} | ||||
| Release:	11%{?dist} | ||||
| Summary:	Utility to evaluate system suitability for RT Linux | ||||
| 
 | ||||
| Group:		Development/Tools | ||||
| @ -41,6 +41,7 @@ Patch6: rteval-Minor-improvements-to-CpuList-class.patch | ||||
| Patch7: rteval-Convert-CpuList-class-to-a-module.patch | ||||
| Patch8: rteval-Add-relative-cpulists-for-measurements.patch | ||||
| Patch9: rteval-Implement-initial-dmidecode-support.patch | ||||
| Patch10: rteval-Add-relative-cpulists-for-loads.patch | ||||
| 
 | ||||
| %description | ||||
| The rteval script is a utility for measuring various aspects of | ||||
| @ -62,6 +63,7 @@ to the screen. | ||||
| %patch7 -p1 | ||||
| %patch8 -p1 | ||||
| %patch9 -p1 | ||||
| %patch10 -p1 | ||||
| 
 | ||||
| %build | ||||
| %{__python3} setup.py build | ||||
| @ -83,6 +85,10 @@ to the screen. | ||||
| %{_bindir}/rteval | ||||
| 
 | ||||
| %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 | ||||
| - Add dependency on procps-ng which was missing in minimal environments | ||||
| Resolves: RHEL-31921 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user