--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+
+my $fn="/proc/interrupts";
+
+open my $fh, "<", $fn || die "could not open $fn for reading";
+
+my $rh_i;
+for my $cl (<$fh>) {
+ chomp $cl;
+ $cl=~s/^\s+//;
+ my (@s)=split /\s+/, $cl;
+ #print "i: $s[0] $s[26]\n";
+ my $int = $s[0];
+ if (defined $int && defined $s[26]) {
+ $int=~s/://;
+ $rh_i->{$int} = $s[26];
+ }
+}
+
+#print Dumper $rh_i;
+my $rh_function = {reverse %$rh_i};
+#print Dumper $rh_function;
+
+for my $cf (keys %$rh_function) {
+ my $affinity;
+ for ($cf) {
+ if (/eth4-rx/) {
+ $affinity = "00FF00"; last;
+ }
+ if (/eth5-tx/) {
+ $affinity = "FF0000"; last;
+ }
+ if (/eth5-rx/) {
+ $affinity = "FF0000"; last;
+ }
+ $affinity = "NA"
+ }
+
+ if ($affinity ne "NA") {
+ my $pfn = "/proc/irq/$rh_function->{$cf}/smp_affinity";
+ open my $wh, ">", $pfn or die "could not open file";
+ print "/proc/irq/" . $rh_function->{$cf} . "/smp_affinity" . " -> " . $affinity . "\n";
+ print $wh $affinity;
+ close ($wh);
+ }
+}
+
+