~kmously/ubuntu/+source/linux/+git/focal:gvnic2

Last commit made on 2022-02-16
Get this branch:
git clone -b gvnic2 https://git.launchpad.net/~kmously/ubuntu/+source/linux/+git/focal
Only Khaled El Mously can upload to this branch. If you are Khaled El Mously please log in for upload directions.

Branch merges

Branch information

Recent commits

32686cc... by "Gustavo A. R. Silva" <email address hidden>

gve: Use kvcalloc() instead of kvzalloc()

BugLink: http://bugs.launchpad.net/bugs/1953575

Use 2-factor argument form kvcalloc() instead of kvzalloc().

Signed-off-by: Gustavo A. R. Silva <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 7fec4d39198beb4322ba5039a01649b43ee663f2)
Signed-off-by: Khalid Elmously <email address hidden>

e50ba21... by Khaled El Mously

UBUNTU: SAUCE: Update get/set coalesce functions to match 5.4 ABI

BugLink: http://bugs.launchpad.net/bugs/1953575

The gve_set_coalesce/gve_get_coalesce signatures match the 5.15/5.16 kernel ABI but the additional parameters are not actually used in the 5.15 GVE code.

Remove the unused parameters to match the 5.4 signatures of the .get_coalesce/.set_coalesce ethtool_ops.

Signed-off-by: Khalid Elmously <email address hidden>

cbcb878... by Tao Liu <email address hidden>

gve: Add tx|rx-coalesce-usec for DQO

BugLink: http://bugs.launchpad.net/bugs/1953575

Adding ethtool support for changing rx-coalesce-usec and tx-coalesce-usec
when using the DQO queue format.

Signed-off-by: Tao Liu <email address hidden>
Signed-off-by: Jeroen de Borst <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 6081ac2013ab9f1a8743f90ef13d973888359cda)
Signed-off-by: Khalid Elmously <email address hidden>

c0b38c4... by Jordan Kim <email address hidden>

gve: Add consumed counts to ethtool stats

BugLink: http://bugs.launchpad.net/bugs/1953575

Being able to see how many descriptors are in-use is helpful
when diagnosing certain issues.

Signed-off-by: Jeroen de Borst <email address hidden>
Signed-off-by: Jordan Kim <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 2c9198356d56a8e035702cfd1a0fde27edbcc338)
Signed-off-by: Khalid Elmously <email address hidden>

6f62fc7... by Catherine Sullivan <email address hidden>

gve: Implement suspend/resume/shutdown

BugLink: http://bugs.launchpad.net/bugs/1953575

Add support for suspend, resume and shutdown.

Signed-off-by: Catherine Sullivan <email address hidden>
Signed-off-by: David Awogbemila <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 974365e518617c9ce917f61aacbba07e4bedcca0)
Signed-off-by: Khalid Elmously <email address hidden>

3f08cca... by Catherine Sullivan <email address hidden>

gve: remove memory barrier around seqno

BugLink: http://bugs.launchpad.net/bugs/1953575

No longer needed after we introduced the barrier in gve_napi_poll.

Signed-off-by: Catherine Sullivan <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 5fd07df47a7fe7962d628bb117abbadbbb15de94)
Signed-off-by: Khalid Elmously <email address hidden>

61d611d... by Catherine Sullivan <email address hidden>

gve: Update gve_free_queue_page_list signature

BugLink: http://bugs.launchpad.net/bugs/1953575

The id field should be a u32 not a signed int.

Signed-off-by: Catherine Sullivan <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 13e7939c954a280847107c9f081835471f4ea1fe)
Signed-off-by: Khalid Elmously <email address hidden>

f584115... by Catherine Sullivan <email address hidden>

gve: Move the irq db indexes out of the ntfy block struct

BugLink: http://bugs.launchpad.net/bugs/1953575

Giving the device access to other kernel structs is not ideal.
Move the indexes into their own array and just keep pointers to
them in the ntfy block struct.

Signed-off-by: Catherine Sullivan <email address hidden>
Signed-off-by: David Awogbemila <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit d30baacc04948bbfded609cf7fb298e5ae754fcd)
Signed-off-by: Khalid Elmously <email address hidden>

4aa3747... by Willem de Bruijn <email address hidden>

gve: Add optional metadata descriptor type GVE_TXD_MTD

BugLink: http://bugs.launchpad.net/bugs/1953575

Allow drivers to pass metadata along with packet data to the device.
Introduce a new metadata descriptor type

* GVE_TXD_MTD

This descriptor is optional. If present it immediate follows the
packet descriptor and precedes the segment descriptor.

This descriptor may be repeated. Multiple metadata descriptors may
follow. There are no immediate uses for this, this is for future
proofing. At present devices allow only 1 MTD descriptor.

The lower four bits of the type_flags field encode GVE_TXD_MTD.
The upper four bits of the type_flags field encodes a *sub*type.

Introduce one such metadata descriptor subtype

* GVE_MTD_SUBTYPE_PATH

This shares path information with the device for network failure
discovery and robust response:

Linux derives ipv6 flowlabel and ECMP multipath from sk->sk_txhash,
and updates this field on error with sk_rethink_txhash. Allow the host
stack to do the same. Pass the tx_hash value if set. Also communicate
whether the path hash is set, or more exactly, what its type is. Define
two common types

  GVE_MTD_PATH_HASH_NONE
  GVE_MTD_PATH_HASH_L4

Concrete examples of error conditions that are resolved are
mentioned in the commits that add sk_rethink_txhash calls. Such as
commit 7788174e8726 ("tcp: change IPv6 flow-label upon receiving
spurious retransmission").

Experimental results mirror what the theory suggests: where IPv6
FlowLabel is included in path selection (e.g., LAG/ECMP), flowlabel
rotation on TCP timeout avoids the vast majority of TCP disconnects
that would otherwise have occurred during link failures in long-haul
backbones, when an alternative path is available.

Rotation can be applied to various bad connection signals, such as
timeouts and spurious retransmissions. In aggregate, such flow level
signals can help locate network issues. Define initial common states:

  GVE_MTD_PATH_STATE_DEFAULT
  GVE_MTD_PATH_STATE_TIMEOUT
  GVE_MTD_PATH_STATE_CONGESTION
  GVE_MTD_PATH_STATE_RETRANSMIT

Signed-off-by: Willem de Bruijn <email address hidden>
Signed-off-by: David Awogbemila <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 497dbb2b97a0642ecd478d441643bf26804d5f96)
Signed-off-by: Khalid Elmously <email address hidden>

3412fd2... by Jeroen de Borst <email address hidden>

gve: Correct order of processing device options

BugLink: http://bugs.launchpad.net/bugs/1953575

The legacy raw addressing device option was processed before the
new RDA queue format option. This caused the supported features mask,
which is provided only on the RDA queue format option, not to be set.

This disabled jumbo-frame support when using raw adressing.

Fixes: 255489f5b33c ("gve: Add a jumbo-frame device option")
Signed-off-by: Jeroen de Borst <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit a10834a36c8ab59b1a76df48d526fd9ddc090fca)
Signed-off-by: Khalid Elmously <email address hidden>