Resolves: bz 355231
This commit is contained in:
		
							parent
							
								
									74c28eadf7
								
							
						
					
					
						commit
						751f129628
					
				
							
								
								
									
										64
									
								
								irqbalance-0.55-pid-file.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								irqbalance-0.55-pid-file.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,64 @@ | |||||||
|  | diff -up irqbalance-0.55/irqbalance-0.55/irqbalance.c.orig irqbalance-0.55/irqbalance-0.55/irqbalance.c
 | ||||||
|  | --- irqbalance-0.55/irqbalance-0.55/irqbalance.c.orig	2007-11-01 11:43:24.000000000 -0400
 | ||||||
|  | +++ irqbalance-0.55/irqbalance-0.55/irqbalance.c	2007-11-01 15:00:53.000000000 -0400
 | ||||||
|  | @@ -22,7 +22,11 @@
 | ||||||
|  |  #include <stdio.h> | ||||||
|  |  #include <stdlib.h> | ||||||
|  |  #include <malloc.h> | ||||||
|  | +#include <fcntl.h>
 | ||||||
|  | +#include <string.h>
 | ||||||
|  |  #include <sys/time.h> | ||||||
|  | +#include <sys/types.h>
 | ||||||
|  | +#include <sys/stat.h>
 | ||||||
|  |   | ||||||
|  |  #include "irqbalance.h" | ||||||
|  |   | ||||||
|  | @@ -52,6 +56,9 @@ void sleep_approx(int seconds)
 | ||||||
|  |   | ||||||
|  |  int main(int argc, char** argv) | ||||||
|  |  { | ||||||
|  | +	int pidf;
 | ||||||
|  | +	char buf[16];
 | ||||||
|  | +
 | ||||||
|  |  	if (argc>1 && strstr(argv[1],"debug")) | ||||||
|  |  		debug_mode=1; | ||||||
|  |  	if (argc>1 && strstr(argv[1],"oneshot")) | ||||||
|  | @@ -67,9 +74,6 @@ int main(int argc, char** argv)
 | ||||||
|  |  	if (getenv("IRQBALANCE_DEBUG"))  | ||||||
|  |  		debug_mode=1; | ||||||
|  |   | ||||||
|  | -	parse_cpu_tree();
 | ||||||
|  | -
 | ||||||
|  | -
 | ||||||
|  |  	/* On single core UP systems irqbalance obviously has no work to do */ | ||||||
|  |  	if (core_count<2)  | ||||||
|  |  		exit(EXIT_SUCCESS); | ||||||
|  | @@ -82,6 +86,19 @@ int main(int argc, char** argv)
 | ||||||
|  |  		if (daemon(0,0)) | ||||||
|  |  			exit(EXIT_FAILURE); | ||||||
|  |   | ||||||
|  | +	pidf = open("/var/run/irqbalance.pid",O_RDWR|O_CREAT|O_EXCL,0666);
 | ||||||
|  | +	if (pidf < 0)
 | ||||||
|  | +		exit(EXIT_FAILURE);
 | ||||||
|  | +
 | ||||||
|  | +	snprintf(buf, 16, "%d", getpid());
 | ||||||
|  | +	if (write(pidf, buf, strlen(buf)) < strlen(buf)) {
 | ||||||
|  | +		close(pidf);
 | ||||||
|  | +		unlink("/var/run/irqbalance.pid");
 | ||||||
|  | +		exit(EXIT_FAILURE);
 | ||||||
|  | +	}
 | ||||||
|  | +
 | ||||||
|  | +	close(pidf);	
 | ||||||
|  | +
 | ||||||
|  |  	parse_proc_interrupts(); | ||||||
|  |  	sleep(SLEEP_INTERVAL/4); | ||||||
|  |  	reset_counts(); | ||||||
|  | @@ -134,5 +151,8 @@ int main(int argc, char** argv)
 | ||||||
|  |  			break; | ||||||
|  |  		counter++; | ||||||
|  |  	} | ||||||
|  | +
 | ||||||
|  | +	unlink("/var/run/irqbalance.pid");
 | ||||||
|  | +
 | ||||||
|  |  	return EXIT_SUCCESS; | ||||||
|  |  } | ||||||
| @ -46,7 +46,7 @@ esac | |||||||
| RETVAL=0 | RETVAL=0 | ||||||
| 
 | 
 | ||||||
| start() { | start() { | ||||||
|         if [ -n "$ONESHOT" -a -f /var/lock/subsys/irqbalance ]; then |         if [ -n "$ONESHOT" -a -f /var/run/irqbalance.pid ]; then | ||||||
|                 exit 0 |                 exit 0 | ||||||
|         fi |         fi | ||||||
|         echo -n $"Starting $prog: " |         echo -n $"Starting $prog: " | ||||||
| @ -54,12 +54,9 @@ start() { | |||||||
| 	then | 	then | ||||||
| 		export IRQBALANCE_BANNED_CPUS=$IRQ_AFFINITY_MASK | 		export IRQBALANCE_BANNED_CPUS=$IRQ_AFFINITY_MASK | ||||||
| 	fi 	 | 	fi 	 | ||||||
|         daemon irqbalance $ONESHOT $IRQ_AFFINITY |         daemon irqbalance $ONESHOT  | ||||||
|         RETVAL=$? |         RETVAL=$? | ||||||
|         echo |         echo | ||||||
|         if [ $RETVAL -eq 0 ]; then |  | ||||||
|                         touch /var/lock/subsys/irqbalance |  | ||||||
|         fi |  | ||||||
|         return $RETVAL |         return $RETVAL | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| Summary:        IRQ balancing daemon. | Summary:        IRQ balancing daemon. | ||||||
| Name:           irqbalance | Name:           irqbalance | ||||||
| Version:        0.55  | Version:        0.55  | ||||||
| Release: 	6%{?dist} | Release: 	7%{?dist} | ||||||
| Epoch:		2	 | Epoch:		2	 | ||||||
| Group:          System Environment/Base | Group:          System Environment/Base | ||||||
| License:        GPL/OSL | License:        GPL/OSL | ||||||
| @ -19,6 +19,7 @@ Requires:	glib2 | |||||||
| 
 | 
 | ||||||
| Patch0: irqbalance-pie.patch | Patch0: irqbalance-pie.patch | ||||||
| Patch1: irqbalance-0.55-cputree-parse.patch | Patch1: irqbalance-0.55-cputree-parse.patch | ||||||
|  | Patch2: irqbalance-0.55-pid-file.patch | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| irqbalance is a daemon that evenly distributes IRQ load across | irqbalance is a daemon that evenly distributes IRQ load across | ||||||
| @ -29,6 +30,7 @@ multiple CPUs for enhanced performance. | |||||||
| 
 | 
 | ||||||
| #%patch0 -p1 | #%patch0 -p1 | ||||||
| %patch1 -p1 | %patch1 -p1 | ||||||
|  | %patch2 -p1 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| rm -rf $RPM_BUILD_ROOT | rm -rf $RPM_BUILD_ROOT | ||||||
| @ -76,6 +78,9 @@ exit 0 | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Nov 01 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-7 | ||||||
|  | - Update to properly hadndle pid files (bz 355231) | ||||||
|  | 
 | ||||||
| * Thu Oct 04 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-6 | * Thu Oct 04 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-6 | ||||||
| - Fix irqbalance init script (bz 317219) | - Fix irqbalance init script (bz 317219) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user