diff options
Diffstat (limited to 'Documentation')
22 files changed, 190 insertions, 162 deletions
| diff --git a/Documentation/admin-guide/laptops/thinkpad-acpi.rst b/Documentation/admin-guide/laptops/thinkpad-acpi.rst index 6721a80a2d4f..475eb0e81e4a 100644 --- a/Documentation/admin-guide/laptops/thinkpad-acpi.rst +++ b/Documentation/admin-guide/laptops/thinkpad-acpi.rst @@ -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  ---------------------- diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst index 426162009ce9..0e486f41185e 100644 --- a/Documentation/admin-guide/sysctl/kernel.rst +++ b/Documentation/admin-guide/sysctl/kernel.rst @@ -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. diff --git a/Documentation/arm/marvell.rst b/Documentation/arm/marvell.rst index 8323c79d321b..9485a5a2e2e9 100644 --- a/Documentation/arm/marvell.rst +++ b/Documentation/arm/marvell.rst @@ -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 diff --git a/Documentation/arm64/pointer-authentication.rst b/Documentation/arm64/pointer-authentication.rst index f127666ea3a8..e5dad2e40aa8 100644 --- a/Documentation/arm64/pointer-authentication.rst +++ b/Documentation/arm64/pointer-authentication.rst @@ -53,11 +53,10 @@ The number of bits that the PAC occupies in a pointer is 55 minus the  virtual address size configured by the kernel. For example, with a  virtual address size of 48, the PAC is 7 bits wide. -Recent versions of GCC can compile code with APIAKey-based return -address protection when passed the -msign-return-address option. This -uses instructions in the HINT space (unless -march=armv8.3-a or higher -is also passed), and such code can run on systems without the pointer -authentication extension. +When ARM64_PTR_AUTH_KERNEL is selected, the kernel will be compiled +with HINT space pointer authentication instructions protecting +function returns. Kernels built with this option will work on hardware +with or without pointer authentication support.  In addition to exec(), keys can also be reinitialized to random values  using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY, diff --git a/Documentation/bpf/index.rst b/Documentation/bpf/index.rst index 37f273a7e8b6..610450f59e05 100644 --- a/Documentation/bpf/index.rst +++ b/Documentation/bpf/index.rst @@ -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)  ===================== diff --git a/Documentation/cpu-freq/core.rst b/Documentation/cpu-freq/core.rst index 33cb90bd1d8f..4ceef8e7217c 100644 --- a/Documentation/cpu-freq/core.rst +++ b/Documentation/cpu-freq/core.rst @@ -73,12 +73,12 @@ CPUFREQ_POSTCHANGE.  The third argument is a struct cpufreq_freqs with the following  values: -=====	=========================== -cpu	number of the affected CPU +======	====================================== +policy	a pointer to the struct cpufreq_policy  old	old frequency  new	new frequency  flags	flags of the cpufreq driver -=====	=========================== +======	======================================  3. CPUFreq Table Generation with Operating Performance Point (OPP)  ================================================================== diff --git a/Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml b/Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml index 29b9447f3b84..fe0c89edf7c1 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml +++ b/Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml @@ -17,9 +17,10 @@ properties:      oneOf:        - enum:            - fsl,imx7ulp-lpi2c -          - fsl,imx8qm-lpi2c        - items: -          - const: fsl,imx8qxp-lpi2c +          - enum: +              - fsl,imx8qxp-lpi2c +              - fsl,imx8qm-lpi2c            - const: fsl,imx7ulp-lpi2c    reg: diff --git a/Documentation/doc-guide/sphinx.rst b/Documentation/doc-guide/sphinx.rst index ec3e71f56009..e445cb146efe 100644 --- a/Documentation/doc-guide/sphinx.rst +++ b/Documentation/doc-guide/sphinx.rst @@ -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. diff --git a/Documentation/filesystems/autofs.rst b/Documentation/filesystems/autofs.rst index 681c6a492bc0..4f490278d22f 100644 --- a/Documentation/filesystems/autofs.rst +++ b/Documentation/filesystems/autofs.rst @@ -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. diff --git a/Documentation/filesystems/cifs/ksmbd.rst b/Documentation/filesystems/cifs/ksmbd.rst index a1326157d53f..b0d354fd8066 100644 --- a/Documentation/filesystems/cifs/ksmbd.rst +++ b/Documentation/filesystems/cifs/ksmbd.rst @@ -50,11 +50,11 @@ ksmbd.mountd (user space daemon)  --------------------------------  ksmbd.mountd is userspace process to, transfer user account and password that -are registered using ksmbd.adduser(part of utils for user space). Further it +are registered using ksmbd.adduser (part of utils for user space). Further it  allows sharing information parameters that parsed from smb.conf to ksmbd in  kernel. For the execution part it has a daemon which is continuously running  and connected to the kernel interface using netlink socket, it waits for the -requests(dcerpc and share/user info). It handles RPC calls (at a minimum few +requests (dcerpc and share/user info). It handles RPC calls (at a minimum few  dozen) that are most important for file server from NetShareEnum and  NetServerGetInfo. Complete DCE/RPC response is prepared from the user space  and passed over to the associated kernel thread for the client. @@ -154,11 +154,11 @@ Each layer  1. Enable all component prints  	# sudo ksmbd.control -d "all" -2. Enable one of components(smb, auth, vfs, oplock, ipc, conn, rdma) +2. Enable one of components (smb, auth, vfs, oplock, ipc, conn, rdma)  	# sudo ksmbd.control -d "smb" -3. Show what prints are enable. -	# cat/sys/class/ksmbd-control/debug +3. Show what prints are enabled. +	# cat /sys/class/ksmbd-control/debug  	  [smb] auth vfs oplock ipc conn [rdma]  4. Disable prints: diff --git a/Documentation/filesystems/netfs_library.rst b/Documentation/filesystems/netfs_library.rst index bb68d39f03b7..375baca7edcd 100644 --- a/Documentation/filesystems/netfs_library.rst +++ b/Documentation/filesystems/netfs_library.rst @@ -1,7 +1,7 @@  .. SPDX-License-Identifier: GPL-2.0  ================================= -NETWORK FILESYSTEM HELPER LIBRARY +Network Filesystem Helper Library  =================================  .. Contents: @@ -37,22 +37,22 @@ into a common call framework.  The following services are provided: - * Handles transparent huge pages (THPs). + * Handle folios that span multiple pages. - * Insulates the netfs from VM interface changes. + * Insulate the netfs from VM interface changes. - * Allows the netfs to arbitrarily split reads up into pieces, even ones that -   don't match page sizes or page alignments and that may cross pages. + * Allow the netfs to arbitrarily split reads up into pieces, even ones that +   don't match folio sizes or folio alignments and that may cross folios. - * Allows the netfs to expand a readahead request in both directions to meet -   its needs. + * Allow the netfs to expand a readahead request in both directions to meet its +   needs. - * Allows the netfs to partially fulfil a read, which will then be resubmitted. + * Allow the netfs to partially fulfil a read, which will then be resubmitted. - * Handles local caching, allowing cached data and server-read data to be + * Handle local caching, allowing cached data and server-read data to be     interleaved for a single request. - * Handles clearing of bufferage that aren't on the server. + * Handle clearing of bufferage that aren't on the server.   * Handle retrying of reads that failed, switching reads from the cache to the     server as necessary. @@ -70,22 +70,22 @@ Read Helper Functions  Three read helpers are provided:: - * void netfs_readahead(struct readahead_control *ractl, -			const struct netfs_read_request_ops *ops, -			void *netfs_priv);`` - * int netfs_readpage(struct file *file, -		      struct page *page, -		      const struct netfs_read_request_ops *ops, -		      void *netfs_priv); - * int netfs_write_begin(struct file *file, -			 struct address_space *mapping, -			 loff_t pos, -			 unsigned int len, -			 unsigned int flags, -			 struct page **_page, -			 void **_fsdata, -			 const struct netfs_read_request_ops *ops, -			 void *netfs_priv); +	void netfs_readahead(struct readahead_control *ractl, +			     const struct netfs_read_request_ops *ops, +			     void *netfs_priv); +	int netfs_readpage(struct file *file, +			   struct folio *folio, +			   const struct netfs_read_request_ops *ops, +			   void *netfs_priv); +	int netfs_write_begin(struct file *file, +			      struct address_space *mapping, +			      loff_t pos, +			      unsigned int len, +			      unsigned int flags, +			      struct folio **_folio, +			      void **_fsdata, +			      const struct netfs_read_request_ops *ops, +			      void *netfs_priv);  Each corresponds to a VM operation, with the addition of a couple of parameters  for the use of the read helpers: @@ -103,8 +103,8 @@ Both of these values will be stored into the read request structure.  For ->readahead() and ->readpage(), the network filesystem should just jump  into the corresponding read helper; whereas for ->write_begin(), it may be a  little more complicated as the network filesystem might want to flush -conflicting writes or track dirty data and needs to put the acquired page if an -error occurs after calling the helper. +conflicting writes or track dirty data and needs to put the acquired folio if +an error occurs after calling the helper.  The helpers manage the read request, calling back into the network filesystem  through the suppplied table of operations.  Waits will be performed as @@ -253,7 +253,7 @@ through which it can issue requests and negotiate::  		void (*issue_op)(struct netfs_read_subrequest *subreq);  		bool (*is_still_valid)(struct netfs_read_request *rreq);  		int (*check_write_begin)(struct file *file, loff_t pos, unsigned len, -					 struct page *page, void **_fsdata); +					 struct folio *folio, void **_fsdata);  		void (*done)(struct netfs_read_request *rreq);  		void (*cleanup)(struct address_space *mapping, void *netfs_priv);  	}; @@ -313,13 +313,14 @@ The operations are as follows:     There is no return value; the netfs_subreq_terminated() function should be     called to indicate whether or not the operation succeeded and how much data -   it transferred.  The filesystem also should not deal with setting pages +   it transferred.  The filesystem also should not deal with setting folios     uptodate, unlocking them or dropping their refs - the helpers need to deal     with this as they have to coordinate with copying to the local cache. -   Note that the helpers have the pages locked, but not pinned.  It is possible -   to use the ITER_XARRAY iov iterator to refer to the range of the inode that -   is being operated upon without the need to allocate large bvec tables. +   Note that the helpers have the folios locked, but not pinned.  It is +   possible to use the ITER_XARRAY iov iterator to refer to the range of the +   inode that is being operated upon without the need to allocate large bvec +   tables.   * ``is_still_valid()`` @@ -330,15 +331,15 @@ The operations are as follows:   * ``check_write_begin()``     [Optional] This is called from the netfs_write_begin() helper once it has -   allocated/grabbed the page to be modified to allow the filesystem to flush +   allocated/grabbed the folio to be modified to allow the filesystem to flush     conflicting state before allowing it to be modified. -   It should return 0 if everything is now fine, -EAGAIN if the page should be +   It should return 0 if everything is now fine, -EAGAIN if the folio should be     regrabbed and any other error code to abort the operation.   * ``done`` -   [Optional] This is called after the pages in the request have all been +   [Optional] This is called after the folios in the request have all been     unlocked (and marked uptodate if applicable).   * ``cleanup`` @@ -390,7 +391,7 @@ The read helpers work by the following general procedure:       * If NETFS_SREQ_CLEAR_TAIL was set, a short read will be cleared to the         end of the slice instead of reissuing. - * Once the data is read, the pages that have been fully read/cleared: + * Once the data is read, the folios that have been fully read/cleared:     * Will be marked uptodate. @@ -398,11 +399,11 @@ The read helpers work by the following general procedure:     * Unlocked - * Any pages that need writing to the cache will then have DIO writes issued. + * Any folios that need writing to the cache will then have DIO writes issued.   * Synchronous operations will wait for reading to be complete. - * Writes to the cache will proceed asynchronously and the pages will have the + * Writes to the cache will proceed asynchronously and the folios will have the     PG_fscache mark removed when that completes.   * The request structures will be cleaned up when everything has completed. @@ -452,6 +453,9 @@ operation table looks like the following::  			    netfs_io_terminated_t term_func,  			    void *term_func_priv); +		int (*prepare_write)(struct netfs_cache_resources *cres, +				     loff_t *_start, size_t *_len, loff_t i_size); +  		int (*write)(struct netfs_cache_resources *cres,  			     loff_t start_pos,  			     struct iov_iter *iter, @@ -509,6 +513,14 @@ The methods defined in the table are:     indicating whether the termination is definitely happening in the caller's     context. + * ``prepare_write()`` + +   [Required] Called to adjust a write to the cache and check that there is +   sufficient space in the cache.  The start and length values indicate the +   size of the write that netfslib is proposing, and this can be adjusted by +   the cache to respect DIO boundaries.  The file size is passed for +   information. +   * ``write()``     [Required] Called to write to the cache.  The start file offset is given @@ -525,4 +537,9 @@ not the read request structure as they could be used in other situations where  there isn't a read request structure as well, such as writing dirty data to the  cache. + +API Function Reference +====================== +  .. kernel-doc:: include/linux/netfs.h +.. kernel-doc:: fs/netfs/read_helper.c diff --git a/Documentation/i2c/smbus-protocol.rst b/Documentation/i2c/smbus-protocol.rst index 9e07e6bbe6a3..00d8e17d0aca 100644 --- a/Documentation/i2c/smbus-protocol.rst +++ b/Documentation/i2c/smbus-protocol.rst @@ -36,6 +36,8 @@ Key to symbols  =============== =============================================================  S               Start condition +Sr              Repeated start condition, used to switch from write to +                read mode.  P               Stop condition  Rd/Wr (1 bit)   Read/Write bit. Rd equals 1, Wr equals 0.  A, NA (1 bit)   Acknowledge (ACK) and Not Acknowledge (NACK) bit @@ -100,7 +102,7 @@ Implemented by i2c_smbus_read_byte_data()  This reads a single byte from a device, from a designated register.  The register is specified through the Comm byte:: -  S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P +  S Addr Wr [A] Comm [A] Sr Addr Rd [A] [Data] NA P  Functionality flag: I2C_FUNC_SMBUS_READ_BYTE_DATA @@ -114,7 +116,7 @@ This operation is very like Read Byte; again, data is read from a  device, from a designated register that is specified through the Comm  byte. But this time, the data is a complete word (16 bits):: -  S Addr Wr [A] Comm [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P +  S Addr Wr [A] Comm [A] Sr Addr Rd [A] [DataLow] A [DataHigh] NA P  Functionality flag: I2C_FUNC_SMBUS_READ_WORD_DATA @@ -164,7 +166,7 @@ This command selects a device register (through the Comm byte), sends  16 bits of data to it, and reads 16 bits of data in return::    S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] -                               S Addr Rd [A] [DataLow] A [DataHigh] NA P +                              Sr Addr Rd [A] [DataLow] A [DataHigh] NA P  Functionality flag: I2C_FUNC_SMBUS_PROC_CALL @@ -181,7 +183,7 @@ of data is specified by the device in the Count byte.  ::    S Addr Wr [A] Comm [A] -             S Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P +            Sr Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P  Functionality flag: I2C_FUNC_SMBUS_READ_BLOCK_DATA @@ -212,7 +214,7 @@ This command selects a device register (through the Comm byte), sends  1 to 31 bytes of data to it, and reads 1 to 31 bytes of data in return::    S Addr Wr [A] Comm [A] Count [A] Data [A] ... -                               S Addr Rd [A] [Count] A [Data] ... A P +                              Sr Addr Rd [A] [Count] A [Data] ... A P  Functionality flag: I2C_FUNC_SMBUS_BLOCK_PROC_CALL @@ -300,7 +302,7 @@ This command reads a block of bytes from a device, from a  designated register that is specified through the Comm byte::    S Addr Wr [A] Comm [A] -             S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P +            Sr Addr Rd [A] [Data] A [Data] A ... A [Data] NA P  Functionality flag: I2C_FUNC_SMBUS_READ_I2C_BLOCK diff --git a/Documentation/networking/ipvs-sysctl.rst b/Documentation/networking/ipvs-sysctl.rst index 95ef56d62077..387fda80f05f 100644 --- a/Documentation/networking/ipvs-sysctl.rst +++ b/Documentation/networking/ipvs-sysctl.rst @@ -37,8 +37,7 @@ conn_reuse_mode - INTEGER  	0: disable any special handling on port reuse. The new  	connection will be delivered to the same real server that was -	servicing the previous connection. This will effectively -	disable expire_nodest_conn. +	servicing the previous connection.  	bit 1: enable rescheduling of new connections when it is safe.  	That is, whenever expire_nodest_conn and for TCP sockets, when diff --git a/Documentation/networking/timestamping.rst b/Documentation/networking/timestamping.rst index a722eb30e014..80b13353254a 100644 --- a/Documentation/networking/timestamping.rst +++ b/Documentation/networking/timestamping.rst @@ -486,8 +486,8 @@ of packets.  Drivers are free to use a more permissive configuration than the requested  configuration. It is expected that drivers should only implement directly the  most generic mode that can be supported. For example if the hardware can -support HWTSTAMP_FILTER_V2_EVENT, then it should generally always upscale -HWTSTAMP_FILTER_V2_L2_SYNC_MESSAGE, and so forth, as HWTSTAMP_FILTER_V2_EVENT +support HWTSTAMP_FILTER_PTP_V2_EVENT, then it should generally always upscale +HWTSTAMP_FILTER_PTP_V2_L2_SYNC, and so forth, as HWTSTAMP_FILTER_PTP_V2_EVENT  is more generic (and more useful to applications).  A driver which supports hardware time stamping shall update the struct diff --git a/Documentation/power/energy-model.rst b/Documentation/power/energy-model.rst index 8a2788afe89b..5ac62a7b4b7c 100644 --- a/Documentation/power/energy-model.rst +++ b/Documentation/power/energy-model.rst @@ -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	}; diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst index e35ab74a0f80..b398b8576417 100644 --- a/Documentation/process/changes.rst +++ b/Documentation/process/changes.rst @@ -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 diff --git a/Documentation/process/submitting-patches.rst b/Documentation/process/submitting-patches.rst index a0cc96923ea7..da085d63af9b 100644 --- a/Documentation/process/submitting-patches.rst +++ b/Documentation/process/submitting-patches.rst @@ -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  ---------------------------- diff --git a/Documentation/trace/ftrace.rst b/Documentation/trace/ftrace.rst index 4e5b26f03d5b..b3166c4a7867 100644 --- a/Documentation/trace/ftrace.rst +++ b/Documentation/trace/ftrace.rst @@ -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 "$@" diff --git a/Documentation/translations/it_IT/doc-guide/sphinx.rst b/Documentation/translations/it_IT/doc-guide/sphinx.rst index 0046d75d9a70..9762452c584c 100644 --- a/Documentation/translations/it_IT/doc-guide/sphinx.rst +++ b/Documentation/translations/it_IT/doc-guide/sphinx.rst @@ -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. diff --git a/Documentation/translations/it_IT/process/changes.rst b/Documentation/translations/it_IT/process/changes.rst index 87d081889bfc..dc7193377b7f 100644 --- a/Documentation/translations/it_IT/process/changes.rst +++ b/Documentation/translations/it_IT/process/changes.rst @@ -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 diff --git a/Documentation/translations/zh_CN/doc-guide/sphinx.rst b/Documentation/translations/zh_CN/doc-guide/sphinx.rst index 951595c7d599..23eac67fbc30 100644 --- a/Documentation/translations/zh_CN/doc-guide/sphinx.rst +++ b/Documentation/translations/zh_CN/doc-guide/sphinx.rst @@ -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. diff --git a/Documentation/translations/zh_CN/process/management-style.rst b/Documentation/translations/zh_CN/process/management-style.rst index c6a5bb285797..8053ae474328 100644 --- a/Documentation/translations/zh_CN/process/management-style.rst +++ b/Documentation/translations/zh_CN/process/management-style.rst @@ -36,14 +36,14 @@ Linux内核管理风格  每个人都认为管理者做决定,而且决策很重要。决定越大越痛苦,管理者就必须越高级。  这很明显,但事实并非如此。 -游戏的名字是 **避免** 做出决定。尤其是,如果有人告诉你“选择(a)或(b), +最重要的是 **避免** 做出决定。尤其是,如果有人告诉你“选择(a)或(b),  我们真的需要你来做决定”,你就是陷入麻烦的管理者。你管理的人比你更了解细节,  所以如果他们来找你做技术决策,你完蛋了。你显然没有能力为他们做这个决定。  (推论:如果你管理的人不比你更了解细节,你也会被搞砸,尽管原因完全不同。  也就是说,你的工作是错的,他们应该管理你的才智) -所以游戏的名字是 **避免** 做出决定,至少是那些大而痛苦的决定。做一些小的 +所以最重要的是 **避免** 做出决定,至少是那些大而痛苦的决定。做一些小的  和非结果性的决定是很好的,并且使您看起来好像知道自己在做什么,所以内核管理者  需要做的是将那些大的和痛苦的决定变成那些没有人真正关心的小事情。 |