Merge tag 'v5.16-rc2' into devel
Linux 5.16-rc2 is needed because nonurgent fixes headed for next are strongly textually dependent on a fix that was applied for rc2. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
@@ -1520,15 +1520,15 @@ This sysfs attribute controls the keyboard "face" that will be shown on the
|
||||
Lenovo X1 Carbon 2nd gen (2014)'s adaptive keyboard. The value can be read
|
||||
and set.
|
||||
|
||||
- 1 = Home mode
|
||||
- 2 = Web-browser mode
|
||||
- 3 = Web-conference mode
|
||||
- 4 = Function mode
|
||||
- 5 = Layflat mode
|
||||
- 0 = Home mode
|
||||
- 1 = Web-browser mode
|
||||
- 2 = Web-conference mode
|
||||
- 3 = Function mode
|
||||
- 4 = Layflat mode
|
||||
|
||||
For more details about which buttons will appear depending on the mode, please
|
||||
review the laptop's user guide:
|
||||
http://www.lenovo.com/shop/americas/content/user_guides/x1carbon_2_ug_en.pdf
|
||||
https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/x1carbon_2_ug_en.pdf
|
||||
|
||||
Battery charge control
|
||||
----------------------
|
||||
|
||||
@@ -1099,7 +1099,7 @@ task_delayacct
|
||||
===============
|
||||
|
||||
Enables/disables task delay accounting (see
|
||||
:doc:`accounting/delay-accounting.rst`). Enabling this feature incurs
|
||||
Documentation/accounting/delay-accounting.rst. Enabling this feature incurs
|
||||
a small amount of overhead in the scheduler but is useful for debugging
|
||||
and performance tuning. It is required by some tools such as iotop.
|
||||
|
||||
|
||||
@@ -104,6 +104,8 @@ Discovery family
|
||||
|
||||
Not supported by the Linux kernel.
|
||||
|
||||
Homepage:
|
||||
https://web.archive.org/web/20110924171043/http://www.marvell.com/embedded-processors/discovery-innovation/
|
||||
Core:
|
||||
Feroceon 88fr571-vd ARMv5 compatible
|
||||
|
||||
@@ -120,6 +122,7 @@ EBU Armada family
|
||||
- 88F6707
|
||||
- 88F6W11
|
||||
|
||||
- Product infos: https://web.archive.org/web/20141002083258/http://www.marvell.com/embedded-processors/armada-370/
|
||||
- Product Brief: https://web.archive.org/web/20121115063038/http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
|
||||
- Hardware Spec: https://web.archive.org/web/20140617183747/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
|
||||
- Functional Spec: https://web.archive.org/web/20140617183701/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
|
||||
@@ -127,9 +130,29 @@ EBU Armada family
|
||||
Core:
|
||||
Sheeva ARMv7 compatible PJ4B
|
||||
|
||||
Armada XP Flavors:
|
||||
- MV78230
|
||||
- MV78260
|
||||
- MV78460
|
||||
|
||||
NOTE:
|
||||
not to be confused with the non-SMP 78xx0 SoCs
|
||||
|
||||
- Product infos: https://web.archive.org/web/20150101215721/http://www.marvell.com/embedded-processors/armada-xp/
|
||||
- Product Brief: https://web.archive.org/web/20121021173528/http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
||||
- Functional Spec: https://web.archive.org/web/20180829171131/http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
||||
- Hardware Specs:
|
||||
- https://web.archive.org/web/20141127013651/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
||||
- https://web.archive.org/web/20141222000224/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
||||
- https://web.archive.org/web/20141222000230/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
||||
|
||||
Core:
|
||||
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
||||
|
||||
Armada 375 Flavors:
|
||||
- 88F6720
|
||||
|
||||
- Product infos: https://web.archive.org/web/20140108032402/http://www.marvell.com/embedded-processors/armada-375/
|
||||
- Product Brief: https://web.archive.org/web/20131216023516/http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
|
||||
|
||||
Core:
|
||||
@@ -162,29 +185,6 @@ EBU Armada family
|
||||
Core:
|
||||
ARM Cortex-A9
|
||||
|
||||
Armada XP Flavors:
|
||||
- MV78230
|
||||
- MV78260
|
||||
- MV78460
|
||||
|
||||
NOTE:
|
||||
not to be confused with the non-SMP 78xx0 SoCs
|
||||
|
||||
Product Brief:
|
||||
https://web.archive.org/web/20121021173528/http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
||||
|
||||
Functional Spec:
|
||||
https://web.archive.org/web/20180829171131/http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
||||
|
||||
- Hardware Specs:
|
||||
|
||||
- https://web.archive.org/web/20141127013651/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
||||
- https://web.archive.org/web/20141222000224/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
||||
- https://web.archive.org/web/20141222000230/http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
||||
|
||||
Core:
|
||||
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
||||
|
||||
Linux kernel mach directory:
|
||||
arch/arm/mach-mvebu
|
||||
Linux kernel plat directory:
|
||||
@@ -436,7 +436,7 @@ Berlin family (Multimedia Solutions)
|
||||
- Flavors:
|
||||
- 88DE3010, Armada 1000 (no Linux support)
|
||||
- Core: Marvell PJ1 (ARMv5TE), Dual-core
|
||||
- Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
|
||||
- Product Brief: https://web.archive.org/web/20131103162620/http://www.marvell.com/digital-entertainment/assets/armada_1000_pb.pdf
|
||||
- 88DE3005, Armada 1500 Mini
|
||||
- Design name: BG2CD
|
||||
- Core: ARM Cortex-A9, PL310 L2CC
|
||||
|
||||
@@ -15,7 +15,7 @@ that goes into great technical depth about the BPF Architecture.
|
||||
libbpf
|
||||
======
|
||||
|
||||
Documentation/bpf/libbpf/libbpf.rst is a userspace library for loading and interacting with bpf programs.
|
||||
Documentation/bpf/libbpf/index.rst is a userspace library for loading and interacting with bpf programs.
|
||||
|
||||
BPF Type Format (BTF)
|
||||
=====================
|
||||
|
||||
@@ -27,7 +27,7 @@ Sphinx Install
|
||||
==============
|
||||
|
||||
The ReST markups currently used by the Documentation/ files are meant to be
|
||||
built with ``Sphinx`` version 1.3 or higher.
|
||||
built with ``Sphinx`` version 1.7 or higher.
|
||||
|
||||
There's a script that checks for the Sphinx requirements. Please see
|
||||
:ref:`sphinx-pre-install` for further details.
|
||||
@@ -43,10 +43,6 @@ or ``virtualenv``, depending on how your distribution packaged Python 3.
|
||||
|
||||
.. note::
|
||||
|
||||
#) Sphinx versions below 1.5 don't work properly with Python's
|
||||
docutils version 0.13.1 or higher. So, if you're willing to use
|
||||
those versions, you should run ``pip install 'docutils==0.12'``.
|
||||
|
||||
#) It is recommended to use the RTD theme for html output. Depending
|
||||
on the Sphinx version, it should be installed separately,
|
||||
with ``pip install sphinx_rtd_theme``.
|
||||
@@ -55,13 +51,13 @@ or ``virtualenv``, depending on how your distribution packaged Python 3.
|
||||
those expressions are written using LaTeX notation. It needs texlive
|
||||
installed with amsfonts and amsmath in order to evaluate them.
|
||||
|
||||
In summary, if you want to install Sphinx version 1.7.9, you should do::
|
||||
In summary, if you want to install Sphinx version 2.4.4, you should do::
|
||||
|
||||
$ virtualenv sphinx_1.7.9
|
||||
$ . sphinx_1.7.9/bin/activate
|
||||
(sphinx_1.7.9) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
$ virtualenv sphinx_2.4.4
|
||||
$ . sphinx_2.4.4/bin/activate
|
||||
(sphinx_2.4.4) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
After running ``. sphinx_1.7.9/bin/activate``, the prompt will change,
|
||||
After running ``. sphinx_2.4.4/bin/activate``, the prompt will change,
|
||||
in order to indicate that you're using the new environment. If you
|
||||
open a new shell, you need to rerun this command to enter again at
|
||||
the virtual environment before building the documentation.
|
||||
@@ -81,7 +77,7 @@ output.
|
||||
PDF and LaTeX builds
|
||||
--------------------
|
||||
|
||||
Such builds are currently supported only with Sphinx versions 1.4 and higher.
|
||||
Such builds are currently supported only with Sphinx versions 2.4 and higher.
|
||||
|
||||
For PDF and LaTeX output, you'll also need ``XeLaTeX`` version 3.14159265.
|
||||
|
||||
@@ -104,8 +100,8 @@ command line options for your distro::
|
||||
You should run:
|
||||
|
||||
sudo dnf install -y texlive-luatex85
|
||||
/usr/bin/virtualenv sphinx_1.7.9
|
||||
. sphinx_1.7.9/bin/activate
|
||||
/usr/bin/virtualenv sphinx_2.4.4
|
||||
. sphinx_2.4.4/bin/activate
|
||||
pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
|
||||
|
||||
@@ -35,7 +35,7 @@ This document describes only the kernel module and the interactions
|
||||
required with any user-space program. Subsequent text refers to this
|
||||
as the "automount daemon" or simply "the daemon".
|
||||
|
||||
"autofs" is a Linux kernel module with provides the "autofs"
|
||||
"autofs" is a Linux kernel module which provides the "autofs"
|
||||
filesystem type. Several "autofs" filesystems can be mounted and they
|
||||
can each be managed separately, or all managed by the same daemon.
|
||||
|
||||
|
||||
@@ -84,6 +84,16 @@ CONFIG_ENERGY_MODEL must be enabled to use the EM framework.
|
||||
2.2 Registration of performance domains
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Registration of 'advanced' EM
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The 'advanced' EM gets it's name due to the fact that the driver is allowed
|
||||
to provide more precised power model. It's not limited to some implemented math
|
||||
formula in the framework (like it's in 'simple' EM case). It can better reflect
|
||||
the real power measurements performed for each performance state. Thus, this
|
||||
registration method should be preferred in case considering EM static power
|
||||
(leakage) is important.
|
||||
|
||||
Drivers are expected to register performance domains into the EM framework by
|
||||
calling the following API::
|
||||
|
||||
@@ -103,6 +113,18 @@ to: return warning/error, stop working or panic.
|
||||
See Section 3. for an example of driver implementing this
|
||||
callback, or Section 2.4 for further documentation on this API
|
||||
|
||||
Registration of 'simple' EM
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The 'simple' EM is registered using the framework helper function
|
||||
cpufreq_register_em_with_opp(). It implements a power model which is tight to
|
||||
math formula::
|
||||
|
||||
Power = C * V^2 * f
|
||||
|
||||
The EM which is registered using this method might not reflect correctly the
|
||||
physics of a real device, e.g. when static power (leakage) is important.
|
||||
|
||||
|
||||
2.3 Accessing performance domains
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -138,6 +160,10 @@ or in Section 2.4
|
||||
3. Example driver
|
||||
-----------------
|
||||
|
||||
The CPUFreq framework supports dedicated callback for registering
|
||||
the EM for a given CPU(s) 'policy' object: cpufreq_driver::register_em().
|
||||
That callback has to be implemented properly for a given driver,
|
||||
because the framework would call it at the right time during setup.
|
||||
This section provides a simple example of a CPUFreq driver registering a
|
||||
performance domain in the Energy Model framework using the (fake) 'foo'
|
||||
protocol. The driver implements an est_power() function to be provided to the
|
||||
@@ -167,25 +193,22 @@ EM framework::
|
||||
20 return 0;
|
||||
21 }
|
||||
22
|
||||
23 static int foo_cpufreq_init(struct cpufreq_policy *policy)
|
||||
23 static void foo_cpufreq_register_em(struct cpufreq_policy *policy)
|
||||
24 {
|
||||
25 struct em_data_callback em_cb = EM_DATA_CB(est_power);
|
||||
26 struct device *cpu_dev;
|
||||
27 int nr_opp, ret;
|
||||
27 int nr_opp;
|
||||
28
|
||||
29 cpu_dev = get_cpu_device(cpumask_first(policy->cpus));
|
||||
30
|
||||
31 /* Do the actual CPUFreq init work ... */
|
||||
32 ret = do_foo_cpufreq_init(policy);
|
||||
33 if (ret)
|
||||
34 return ret;
|
||||
35
|
||||
36 /* Find the number of OPPs for this policy */
|
||||
37 nr_opp = foo_get_nr_opp(policy);
|
||||
31 /* Find the number of OPPs for this policy */
|
||||
32 nr_opp = foo_get_nr_opp(policy);
|
||||
33
|
||||
34 /* And register the new performance domain */
|
||||
35 em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus,
|
||||
36 true);
|
||||
37 }
|
||||
38
|
||||
39 /* And register the new performance domain */
|
||||
40 em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus,
|
||||
41 true);
|
||||
42
|
||||
43 return 0;
|
||||
44 }
|
||||
39 static struct cpufreq_driver foo_cpufreq_driver = {
|
||||
40 .register_em = foo_cpufreq_register_em,
|
||||
41 };
|
||||
|
||||
@@ -54,7 +54,7 @@ mcelog 0.6 mcelog --version
|
||||
iptables 1.4.2 iptables -V
|
||||
openssl & libcrypto 1.0.0 openssl version
|
||||
bc 1.06.95 bc --version
|
||||
Sphinx\ [#f1]_ 1.3 sphinx-build --version
|
||||
Sphinx\ [#f1]_ 1.7 sphinx-build --version
|
||||
====================== =============== ========================================
|
||||
|
||||
.. [#f1] Sphinx is needed only to build the Kernel documentation
|
||||
|
||||
@@ -22,8 +22,8 @@ use it, it will make your life as a kernel developer and in general much
|
||||
easier.
|
||||
|
||||
Some subsystems and maintainer trees have additional information about
|
||||
their workflow and expectations, see :ref:`Documentation/process/maintainer
|
||||
handbooks <maintainer_handbooks_main>`.
|
||||
their workflow and expectations, see
|
||||
:ref:`Documentation/process/maintainer-handbooks.rst <maintainer_handbooks_main>`.
|
||||
|
||||
Obtain a current source tree
|
||||
----------------------------
|
||||
|
||||
@@ -2442,11 +2442,10 @@ Or this simple script!
|
||||
#!/bin/bash
|
||||
|
||||
tracefs=`sed -ne 's/^tracefs \(.*\) tracefs.*/\1/p' /proc/mounts`
|
||||
echo nop > $tracefs/tracing/current_tracer
|
||||
echo 0 > $tracefs/tracing/tracing_on
|
||||
echo $$ > $tracefs/tracing/set_ftrace_pid
|
||||
echo function > $tracefs/tracing/current_tracer
|
||||
echo 1 > $tracefs/tracing/tracing_on
|
||||
echo 0 > $tracefs/tracing_on
|
||||
echo $$ > $tracefs/set_ftrace_pid
|
||||
echo function > $tracefs/current_tracer
|
||||
echo 1 > $tracefs/tracing_on
|
||||
exec "$@"
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ Installazione Sphinx
|
||||
====================
|
||||
|
||||
I marcatori ReST utilizzati nei file in Documentation/ sono pensati per essere
|
||||
processati da ``Sphinx`` nella versione 1.3 o superiore.
|
||||
processati da ``Sphinx`` nella versione 1.7 o superiore.
|
||||
|
||||
Esiste uno script che verifica i requisiti Sphinx. Per ulteriori dettagli
|
||||
consultate :ref:`it_sphinx-pre-install`.
|
||||
@@ -53,11 +53,6 @@ pacchettizzato dalla vostra distribuzione.
|
||||
|
||||
.. note::
|
||||
|
||||
#) Le versioni di Sphinx inferiori alla 1.5 non funzionano bene
|
||||
con il pacchetto Python docutils versione 0.13.1 o superiore.
|
||||
Se volete usare queste versioni, allora dovere eseguire
|
||||
``pip install 'docutils==0.12'``.
|
||||
|
||||
#) Viene raccomandato l'uso del tema RTD per la documentazione in HTML.
|
||||
A seconda della versione di Sphinx, potrebbe essere necessaria
|
||||
l'installazione tramite il comando ``pip install sphinx_rtd_theme``.
|
||||
@@ -67,13 +62,13 @@ pacchettizzato dalla vostra distribuzione.
|
||||
utilizzando LaTeX. Per una corretta interpretazione, è necessario aver
|
||||
installato texlive con i pacchetti amdfonts e amsmath.
|
||||
|
||||
Riassumendo, se volete installare la versione 1.7.9 di Sphinx dovete eseguire::
|
||||
Riassumendo, se volete installare la versione 2.4.4 di Sphinx dovete eseguire::
|
||||
|
||||
$ virtualenv sphinx_1.7.9
|
||||
$ . sphinx_1.7.9/bin/activate
|
||||
(sphinx_1.7.9) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
$ virtualenv sphinx_2.4.4
|
||||
$ . sphinx_2.4.4/bin/activate
|
||||
(sphinx_2.4.4) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
Dopo aver eseguito ``. sphinx_1.7.9/bin/activate``, il prompt cambierà per
|
||||
Dopo aver eseguito ``. sphinx_2.4.4/bin/activate``, il prompt cambierà per
|
||||
indicare che state usando il nuovo ambiente. Se aprite un nuova sessione,
|
||||
prima di generare la documentazione, dovrete rieseguire questo comando per
|
||||
rientrare nell'ambiente virtuale.
|
||||
@@ -94,7 +89,7 @@ Generazione in PDF e LaTeX
|
||||
--------------------------
|
||||
|
||||
Al momento, la generazione di questi documenti è supportata solo dalle
|
||||
versioni di Sphinx superiori alla 1.4.
|
||||
versioni di Sphinx superiori alla 2.4.
|
||||
|
||||
Per la generazione di PDF e LaTeX, avrete bisogno anche del pacchetto
|
||||
``XeLaTeX`` nella versione 3.14159265
|
||||
@@ -119,8 +114,8 @@ l'installazione::
|
||||
You should run:
|
||||
|
||||
sudo dnf install -y texlive-luatex85
|
||||
/usr/bin/virtualenv sphinx_1.7.9
|
||||
. sphinx_1.7.9/bin/activate
|
||||
/usr/bin/virtualenv sphinx_2.4.4
|
||||
. sphinx_2.4.4/bin/activate
|
||||
pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
|
||||
|
||||
@@ -57,7 +57,7 @@ mcelog 0.6 mcelog --version
|
||||
iptables 1.4.2 iptables -V
|
||||
openssl & libcrypto 1.0.0 openssl version
|
||||
bc 1.06.95 bc --version
|
||||
Sphinx\ [#f1]_ 1.3 sphinx-build --version
|
||||
Sphinx\ [#f1]_ 1.7 sphinx-build --version
|
||||
====================== ================= ========================================
|
||||
|
||||
.. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
|
||||
|
||||
@@ -26,7 +26,7 @@ reStructuredText文件可能包含包含来自源文件的结构化文档注释
|
||||
安装Sphinx
|
||||
==========
|
||||
|
||||
Documentation/ 下的ReST文件现在使用sphinx1.3或更高版本构建。
|
||||
Documentation/ 下的ReST文件现在使用sphinx1.7或更高版本构建。
|
||||
|
||||
这有一个脚本可以检查Sphinx的依赖项。更多详细信息见
|
||||
:ref:`sphinx-pre-install_zh` 。
|
||||
@@ -40,22 +40,19 @@ Documentation/ 下的ReST文件现在使用sphinx1.3或更高版本构建。
|
||||
|
||||
.. note::
|
||||
|
||||
#) 低于1.5版本的Sphinx无法与Python的0.13.1或更高版本docutils一起正常工作。
|
||||
如果您想使用这些版本,那么应该运行 ``pip install 'docutils==0.12'`` 。
|
||||
|
||||
#) html输出建议使用RTD主题。根据Sphinx版本的不同,它应该用
|
||||
``pip install sphinx_rtd_theme`` 单独安装。
|
||||
|
||||
#) 一些ReST页面包含数学表达式。由于Sphinx的工作方式,这些表达式是使用 LaTeX
|
||||
编写的。它需要安装amsfonts和amsmath宏包,以便显示。
|
||||
|
||||
总之,如您要安装Sphinx 1.7.9版本,应执行::
|
||||
总之,如您要安装Sphinx 2.4.4版本,应执行::
|
||||
|
||||
$ virtualenv sphinx_1.7.9
|
||||
$ . sphinx_1.7.9/bin/activate
|
||||
(sphinx_1.7.9) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
$ virtualenv sphinx_2.4.4
|
||||
$ . sphinx_2.4.4/bin/activate
|
||||
(sphinx_2.4.4) $ pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
在运行 ``. sphinx_1.7.9/bin/activate`` 之后,提示符将变化,以指示您正在使用新
|
||||
在运行 ``. sphinx_2.4.4/bin/activate`` 之后,提示符将变化,以指示您正在使用新
|
||||
环境。如果您打开了一个新的shell,那么在构建文档之前,您需要重新运行此命令以再
|
||||
次进入虚拟环境中。
|
||||
|
||||
@@ -71,7 +68,7 @@ Documentation/ 下的ReST文件现在使用sphinx1.3或更高版本构建。
|
||||
PDF和LaTeX构建
|
||||
--------------
|
||||
|
||||
目前只有Sphinx 1.4及更高版本才支持这种构建。
|
||||
目前只有Sphinx 2.4及更高版本才支持这种构建。
|
||||
|
||||
对于PDF和LaTeX输出,还需要 ``XeLaTeX`` 3.14159265版本。(译注:此版本号真实
|
||||
存在)
|
||||
@@ -93,8 +90,8 @@ PDF和LaTeX构建
|
||||
You should run:
|
||||
|
||||
sudo dnf install -y texlive-luatex85
|
||||
/usr/bin/virtualenv sphinx_1.7.9
|
||||
. sphinx_1.7.9/bin/activate
|
||||
/usr/bin/virtualenv sphinx_2.4.4
|
||||
. sphinx_2.4.4/bin/activate
|
||||
pip install -r Documentation/sphinx/requirements.txt
|
||||
|
||||
Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
|
||||
|
||||
@@ -36,14 +36,14 @@ Linux内核管理风格
|
||||
每个人都认为管理者做决定,而且决策很重要。决定越大越痛苦,管理者就必须越高级。
|
||||
这很明显,但事实并非如此。
|
||||
|
||||
游戏的名字是 **避免** 做出决定。尤其是,如果有人告诉你“选择(a)或(b),
|
||||
最重要的是 **避免** 做出决定。尤其是,如果有人告诉你“选择(a)或(b),
|
||||
我们真的需要你来做决定”,你就是陷入麻烦的管理者。你管理的人比你更了解细节,
|
||||
所以如果他们来找你做技术决策,你完蛋了。你显然没有能力为他们做这个决定。
|
||||
|
||||
(推论:如果你管理的人不比你更了解细节,你也会被搞砸,尽管原因完全不同。
|
||||
也就是说,你的工作是错的,他们应该管理你的才智)
|
||||
|
||||
所以游戏的名字是 **避免** 做出决定,至少是那些大而痛苦的决定。做一些小的
|
||||
所以最重要的是 **避免** 做出决定,至少是那些大而痛苦的决定。做一些小的
|
||||
和非结果性的决定是很好的,并且使您看起来好像知道自己在做什么,所以内核管理者
|
||||
需要做的是将那些大的和痛苦的决定变成那些没有人真正关心的小事情。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user