-
Notifications
You must be signed in to change notification settings - Fork 0
/
rc.mark6
120 lines (102 loc) · 3.46 KB
/
rc.mark6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Copyright 2011 MIT Haystack Observatory
#
# This file is part of Mark6.
#
# Mark6 is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 2 of the License.
#
# Mark6 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Mark6. If not, see <http://www.gnu.org/licenses/>.
# Change this line to point to the installation root of the Mark6
# distribution.
INSTALL_ROOT=/opt/mit/mark6
# Change these variables to point to the IRQs of the LSI Logic
# RAID controllers.
MEGASAS1_IRQ=24
MEGASAS2_IRQ=35
# Setup user environment.
export MARK6_EXEC=/opt/mit/mark6/bin/net2raid-run
export MANPATH=/opt/mit/mark6/man:${MANPATH}
export PATH=/opt/mit/mark6/bin:${PATH}
export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\ m6>'
# Alias useful tools.
ETHTOOL=/sbin/ethtool
BLOCKDEV=/sbin/blockdev
# Configure ethernet drivers
${ETHTOOL} -K eth2 gro on
${ETHTOOL} -K eth3 gro on
${ETHTOOL} -K eth4 gro on
${ETHTOOL} -K eth5 gro on
# Offload parameters for eth2:
# rx-checksumming: on
# tx-checksumming: on
# scatter-gather: on
# tcp-segmentation-offload: on
# udp-fragmentation-offload: off
# generic-segmentation-offload: on
# generic-receive-offload: off
# large-receive-offload: on
# ntuple-filters: off
# receive-hashing: off
# RAID settings
${BLOCKDEV} --setra 16384 /dev/sda
${BLOCKDEV} --setra 16384 /dev/sdb
${BLOCKDEV} --setra 16384 /dev/sdc
${BLOCKDEV} --setra 16384 /dev/sdd
# Set block device scheduler.
echo deadline > /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sdb/queue/scheduler
echo deadline > /sys/block/sdc/queue/scheduler
echo deadline > /sys/block/sdd/queue/scheduler
echo 512 > /sys/block/sda/queue/nr_requests
echo 512 > /sys/block/sdb/queue/nr_requests
echo 512 > /sys/block/sdc/queue/nr_requests
echo 512 > /sys/block/sdd/queue/nr_requests
# This should be set in /etc/modules.
# pf_ring transparent_mode=0 min_num_slots=4096 enable_ip_defrag=1
# IRQ "MAP"
ETH2_IRQ=`cat /proc/interrupts | grep eth2 | awk -F: '{ print $1; }' \
| awk '{ print $1; }'`
ETH3_IRQ=`cat /proc/interrupts | grep eth3 | awk -F: '{ print $1; }' \
| awk '{ print $1; }'`
ETH4_IRQ=`cat /proc/interrupts | grep eth4 | awk -F: '{ print $1; }' \
| awk '{ print $1; }'`
ETH5_IRQ=`cat /proc/interrupts | grep eth5 | awk -F: '{ print $1; }' \
| awk '{ print $1; }'`
# Setup IRQ AFFINITY (echoing a CPU mask to set affinity)
echo 1 > /proc/irq/${ETH2_IRQ}/smp_affinity
echo 1 > /proc/irq/${ETH3_IRQ}/smp_affinity
echo 4 > /proc/irq/${ETH4_IRQ}/smp_affinity
echo 4 > /proc/irq/${ETH5_IRQ}/smp_affinity
# CPU0
echo 1 > /proc/irq/${MEGASAS1_IRQ}/smp_affinity
# CPU2
echo 4 > /proc/irq/${MEGASAS2_IRQ}/smp_affinity
# Set timezone
export TZ=UTC
echo ==============================
echo Mark6 environment
echo
echo EXEC
echo MARK6_EXEC ${MARK6_EXEC}
echo
echo ETHERNET IRQs
echo ETH2_IRQ ${ETH2_IRQ}
echo ETH3_IRQ ${ETH3_IRQ}
echo ETH4_IRQ ${ETH4_IRQ}
echo ETH5_IRQ ${ETH5_IRQ}
echo
echo RAID Controller IRQs
echo MEGASAS1_IRQ ${MEGASAS1_IRQ}
echo MEGASAS2_IRQ ${MEGASAS2_IRQ}
echo
echo TIMEZONE
echo TZ ${TZ}
echo ==============================
echo Mark6 environment initialization is complete. Have a nice day!