The NetBSD Project

CVS log for src/sys/dev/pci/virtio.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / pci

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.81 / (download) - annotate - [select for diffs], Sat Feb 10 02:25:15 2024 UTC (2 months, 1 week ago) by isaki
Branch: MAIN
CVS Tags: HEAD
Changes since 1.80: +4 -3 lines
Diff to previous 1.80 (colored) to selected 1.54 (colored)

Split KASSERT(A && B) into KASSERT(A); KASSERT(B).

Revision 1.80 / (download) - annotate - [select for diffs], Fri Feb 9 22:08:36 2024 UTC (2 months, 1 week ago) by andvar
Branch: MAIN
Changes since 1.79: +4 -4 lines
Diff to previous 1.79 (colored) to selected 1.54 (colored)

fix spelling mistakes, mainly in comments and log messages.

Revision 1.79 / (download) - annotate - [select for diffs], Tue Nov 7 13:38:01 2023 UTC (5 months, 1 week ago) by rin
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.78: +12 -2 lines
Diff to previous 1.78 (colored) to selected 1.54 (colored)

virtio_read_device_config_le_[24]: Fix for {aarch64,arm}eb

Stop byte-swapping for big-endian aarch64 and arm to fix
corrupted read for, e.g., sc_taglen for vio9p(4).

As described as comments in virtio_pci.c, big-endian aarch64 and
armv7 (armeb) are somewhat special. At the moment, all supported
virtual/real machines are configured as little-endian, and only
CPU cores are switched to big-endian mode during early boot stage.

Most peripheral buses for armeb are LSB as a result, and their
default bus_space(9) functions swap byte-order. Therefore, PIOed
data from memory-mapped devices, as well as pci(4) ones, are
actually LSB, but observed as MSB for armeb.

Therefore, we should not swap byte-order further in
virtio_read_device_config_le_[24] on armeb.

Thanks ozaki-r@ for comments.

XXX Centralize?
See virtio_pci.c and sys/dev/fdt/virtio_mmio_fdt.c also.

Revision 1.63.2.5 / (download) - annotate - [select for diffs], Sat Jun 3 14:40:25 2023 UTC (10 months, 2 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1
Changes since 1.63.2.4: +42 -33 lines
Diff to previous 1.63.2.4 (colored) to branchpoint 1.63 (colored) next main 1.64 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by yamaguchi in ticket #186):

	sys/dev/pci/virtio_pci.c: revision 1.41
	sys/dev/pci/virtio_pci.c: revision 1.42
	sys/dev/virtio/virtio_mmio.c: revision 1.10
	sys/dev/pci/virtiovar.h: revision 1.29
	sys/dev/pci/virtio.c: revision 1.75
	sys/dev/pci/virtio.c: revision 1.76
	sys/dev/pci/virtio.c: revision 1.77
	sys/dev/pci/virtio.c: revision 1.78

virtio@pci: Fix assertion on detach.

If the child never attached in the first place, it's OK for it to not
have detached.

XXX This should not be a set of flags; this should be a state
enumeration, because some flags make no sense, like FINISHED|FAILED.

XXX This should not be asserted separately in each bus; there should
be a single place in virtio.c to assert this, uniformly in all buses.

PR kern/57357


Use enumeration for state of a child driver instead of flags
and check its detaching by using sc->sc_child in virtio_softc
pointed out by riastradh, thanks.
fixes PR/57357

Fix not to allocate unnecessary descriptor
fixes PR/57358

virtio(4): change variable name, nfc

virtio(4): change members of struct vring_desc_extra before free a slot

This prevents the following race condition.
1. Thread-A: calls virtio_dequeue_commit() and
             puts a slot into free descriptor chain in vq_free_slot()
2. Thread-B: calls virtio_enqueue_prep() and get the slot stored by Thread-A
3. Thread-B: calls virtio_enqueue_reserve() and
             changes desc_base and desc_free_idx for the slot
4. Thread-A: changes the same members updated by Thread-B
reported by hannken, thanks.

Revision 1.63.2.4 / (download) - annotate - [select for diffs], Sat May 13 10:56:10 2023 UTC (11 months ago) by martin
Branch: netbsd-10
Changes since 1.63.2.3: +332 -259 lines
Diff to previous 1.63.2.3 (colored) to branchpoint 1.63 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by yamaguchi in ticket #139):

	sys/dev/pci/vioscsi.c: revision 1.31
	sys/dev/pci/vio9p.c: revision 1.10
	sys/dev/pci/vioscsi.c: revision 1.32
	sys/dev/pci/vio9p.c: revision 1.11
	sys/dev/pci/vioscsi.c: revision 1.33
	sys/dev/pci/ld_virtio.c: revision 1.31
	sys/dev/virtio/viocon.c: revision 1.6
	sys/dev/pci/vioscsi.c: revision 1.34
	sys/dev/pci/ld_virtio.c: revision 1.32
	sys/dev/virtio/viocon.c: revision 1.7
	sys/dev/virtio/viocon.c: revision 1.8
	sys/dev/pci/vioscsi.c: revision 1.36
	sys/dev/pci/virtioreg.h: revision 1.12
	sys/dev/pci/viornd.c: revision 1.19
	sys/dev/pci/virtio.c: revision 1.66
	sys/dev/pci/virtio.c: revision 1.67
	sys/dev/pci/virtio.c: revision 1.68
	sys/dev/pci/if_vioif.c: revision 1.103
	sys/dev/pci/virtio.c: revision 1.69
	sys/dev/pci/if_vioif.c: revision 1.104
	sys/dev/pci/virtio_pci.c: revision 1.40
	sys/dev/virtio/virtio_mmio.c: revision 1.8
	sys/dev/virtio/virtio_mmio.c: revision 1.9
	sys/dev/pci/viomb.c: revision 1.14
	sys/dev/pci/viomb.c: revision 1.15
	sys/dev/pci/viomb.c: revision 1.17
	sys/dev/pci/viornd.c: revision 1.20
	sys/dev/pci/viornd.c: revision 1.21
	sys/dev/pci/virtiovar.h: revision 1.25
	sys/dev/pci/virtiovar.h: revision 1.26
	sys/dev/pci/virtiovar.h: revision 1.27
	sys/dev/pci/virtiovar.h: revision 1.28
	sys/dev/pci/virtio.c: revision 1.70
	sys/dev/pci/virtio.c: revision 1.71
	sys/dev/pci/virtio.c: revision 1.72
	sys/dev/pci/virtio.c: revision 1.73
	sys/dev/pci/virtio.c: revision 1.74
	sys/dev/pci/virtio_pci.c: revision 1.39

Set virtqueues in virtio_child_attach_finish

The number of virtqueue maybe change in a part of VirtIO devices
(e.g. vioif(4)). And it is fixed after negotiation of features.
So the configuration is moved into the function.

viocon(4): fix not to allocate unused virtqueue

viocon(4) allocates 4 virtqueues but it only uses 2 (0 and 1) queues.

Added functions to set interrupt handler and index into virtqueue

Added check of pointer for allocated memory before release of resource

Setup virtqueues after registering them to virtio_softc
restore fetch of qsize.

Mark as MPSAFE.

virtio(4): Avoid name collision with global intrhand on sparc64.

Pacifies -Werror=shadow.
No functional change intended.

Use PRIuBUSSIZE to print bus_size_t variables.

virtio(4): Fix sizing of virtqueue allocation.
vq->vq_avail[0].ring is a zero-length array, and thus sizeof is zero;
likewise vq->vq_used[0].ring.
Use vq->vq_avail[0].ring[0] and vq->vq_used[0].ring[0] to fix this
and restore the previous allocation sizing logic.
XXX We shouldn't use zero-length arrays here -- they are asking for
trouble like this, and C99 has a standard way to express what we're
actually trying to get at it, flexible array members.
PR kern/57304

virtio(4): Use flexible array members, not zero-length arrays.
This enables the compiler to detect sizeof mistakes like
PR kern/57304.

Use descriptor chain for free slots instead of vq_entry list
Descriptors can be chained by themself. And descriptors added to
avail ring or used ring are already chained. But it was not used
for unused descriptors and another linked list structure named
vq_entry was used.

The chain is also used for unused descriptors to make virtio(4)
simpler.

Added flags to store status of attaching a virtio device

This prevents a panic on reboot after a virtio device had called
virtio_child_attach_failed().

Fix wrong variable names
This fixes build errors in virtio_mmio.c

Revision 1.78 / (download) - annotate - [select for diffs], Fri Apr 21 02:17:32 2023 UTC (11 months, 4 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.77: +6 -6 lines
Diff to previous 1.77 (colored) to selected 1.54 (colored)

virtio(4): change members of struct vring_desc_extra before free a slot

This prevents the following race condition.
1. Thread-A: calls virtio_dequeue_commit() and
             puts a slot into free descriptor chain in vq_free_slot()
2. Thread-B: calls virtio_enqueue_prep() and get the slot stored by Thread-A
3. Thread-B: calls virtio_enqueue_reserve() and
             changes desc_base and desc_free_idx for the slot
4. Thread-A: changes the same members updated by Thread-B

reported by hannken, thanks.

Revision 1.77 / (download) - annotate - [select for diffs], Wed Apr 19 00:40:30 2023 UTC (12 months ago) by yamaguchi
Branch: MAIN
Changes since 1.76: +5 -7 lines
Diff to previous 1.76 (colored) to selected 1.54 (colored)

virtio(4): change variable name, nfc

Revision 1.76 / (download) - annotate - [select for diffs], Wed Apr 19 00:38:30 2023 UTC (12 months ago) by yamaguchi
Branch: MAIN
Changes since 1.75: +11 -10 lines
Diff to previous 1.75 (colored) to selected 1.54 (colored)

Fix not to allocate unnecessary descriptor

fixes PR/57358

Revision 1.75 / (download) - annotate - [select for diffs], Wed Apr 19 00:23:45 2023 UTC (12 months ago) by yamaguchi
Branch: MAIN
Changes since 1.74: +26 -16 lines
Diff to previous 1.74 (colored) to selected 1.54 (colored)

Use enumeration for state of a child driver instead of flags
and check its detaching by using sc->sc_child in virtio_softc

pointed out by riastradh, thanks.
fixes PR/57357

Revision 1.63.2.3 / (download) - annotate - [select for diffs], Sun Apr 2 10:51:22 2023 UTC (12 months, 2 weeks ago) by martin
Branch: netbsd-10
Changes since 1.63.2.2: +4 -4 lines
Diff to previous 1.63.2.2 (colored) to branchpoint 1.63 (colored) to selected 1.54 (colored)

Backout attempts to build fix for ticket #128 for this file, needs
other changes.

Revision 1.63.2.2 / (download) - annotate - [select for diffs], Sat Apr 1 10:31:06 2023 UTC (12 months, 2 weeks ago) by martin
Branch: netbsd-10
Changes since 1.63.2.1: +6 -6 lines
Diff to previous 1.63.2.1 (colored) to branchpoint 1.63 (colored) to selected 1.54 (colored)

Additionally pull up the following for ticket #128 to fix the build:

	sys/dev/pci/if_vioif.c: revision 1.107
	sys/dev/pci/virtio.c: revision 1.71

Use PRIuBUSSIZE to print bus_size_t variables.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Mar 31 07:34:26 2023 UTC (12 months, 2 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.73: +20 -11 lines
Diff to previous 1.73 (colored) to selected 1.54 (colored)

Added flags to store status of attaching a virtio device

This prevents a panic on reboot after a virtio device had called
virtio_child_attach_failed().

Revision 1.73 / (download) - annotate - [select for diffs], Fri Mar 31 07:31:48 2023 UTC (12 months, 2 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.72: +169 -124 lines
Diff to previous 1.72 (colored) to selected 1.54 (colored)

Use descriptor chain for free slots instead of vq_entry list

Descriptors can be chained by themself. And descriptors added to
avail ring or used ring are already chained. But it was not used
for unused descriptors and another linked list structure named
vq_entry was used.
The chain is also used for unused descriptors to make virtio(4)
simpler.

Revision 1.72 / (download) - annotate - [select for diffs], Wed Mar 29 09:44:25 2023 UTC (12 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.71: +4 -4 lines
Diff to previous 1.71 (colored) to selected 1.54 (colored)

virtio(4): Fix sizing of virtqueue allocation.

vq->vq_avail[0].ring is a zero-length array, and thus sizeof is zero;
likewise vq->vq_used[0].ring.

Use vq->vq_avail[0].ring[0] and vq->vq_used[0].ring[0] to fix this
and restore the previous allocation sizing logic.

XXX We shouldn't use zero-length arrays here -- they are asking for
trouble like this, and C99 has a standard way to express what we're
actually trying to get at it, flexible array members.

PR kern/57304

Reported-by: syzbot+7fb1047f5dfa33b26331@syzkaller.appspotmail.com

Revision 1.71 / (download) - annotate - [select for diffs], Mon Mar 27 14:56:40 2023 UTC (12 months, 3 weeks ago) by nakayama
Branch: MAIN
Changes since 1.70: +6 -6 lines
Diff to previous 1.70 (colored) to selected 1.54 (colored)

Use PRIuBUSSIZE to print bus_size_t variables.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Mar 27 10:48:46 2023 UTC (12 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.69: +4 -4 lines
Diff to previous 1.69 (colored) to selected 1.54 (colored)

virtio(4): Avoid name collision with global intrhand on sparc64.

Pacifies -Werror=shadow.

No functional change intended.

Revision 1.69 / (download) - annotate - [select for diffs], Sat Mar 25 02:59:23 2023 UTC (12 months, 3 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.68: +14 -11 lines
Diff to previous 1.68 (colored) to selected 1.54 (colored)

Setup virtqueues after registering them to virtio_softc

Revision 1.68 / (download) - annotate - [select for diffs], Fri Mar 24 13:32:19 2023 UTC (12 months, 3 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.67: +5 -2 lines
Diff to previous 1.67 (colored) to selected 1.54 (colored)

Added check of pointer for allocated memory before release of resource

Revision 1.67 / (download) - annotate - [select for diffs], Thu Mar 23 03:55:11 2023 UTC (12 months, 3 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.66: +122 -105 lines
Diff to previous 1.66 (colored) to selected 1.54 (colored)

Added functions to set interrupt handler and index into virtqueue

Revision 1.66 / (download) - annotate - [select for diffs], Thu Mar 23 03:27:48 2023 UTC (12 months, 3 weeks ago) by yamaguchi
Branch: MAIN
Changes since 1.65: +27 -31 lines
Diff to previous 1.65 (colored) to selected 1.54 (colored)

Set virtqueues in virtio_child_attach_finish

The number of virtqueue maybe change in a part of VirtIO devices
(e.g. vioif(4)). And it is fixed after negotiation of features.
So the configuration is moved into the function.

Revision 1.63.2.1 / (download) - annotate - [select for diffs], Fri Jan 13 19:11:31 2023 UTC (15 months ago) by martin
Branch: netbsd-10
Changes since 1.63: +9 -9 lines
Diff to previous 1.63 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by jakllsch in ticket #48):

	sys/dev/pci/virtio.c: revision 1.64
	sys/dev/pci/virtio.c: revision 1.65

Fix dmamap_syncs more; the number of ring elements is vq->vq_num, not
sc->sc_nvqs.

Subtly adjust criteria for notification of Virtio devices in
VIRTIO_F_RING_EVENT_IDX mode.

This fixes stalls in the vioif(4) transmit path that would happen sooner
or later, depending on interface transmit utilization, and were
particularly noticable with a NetBSD guest transmitting to its x86 KVM
host at multi-gigabit speeds.

Revision 1.65 / (download) - annotate - [select for diffs], Tue Jan 3 19:33:31 2023 UTC (15 months, 2 weeks ago) by jakllsch
Branch: MAIN
Changes since 1.64: +3 -3 lines
Diff to previous 1.64 (colored) to selected 1.54 (colored)

Subtly adjust criteria for notification of Virtio devices in
VIRTIO_F_RING_EVENT_IDX mode.

This fixes stalls in the vioif(4) transmit path that would happen sooner
or later, depending on interface transmit utilization, and were
particularly noticable with a NetBSD guest transmitting to its x86 KVM
host at multi-gigabit speeds.

Revision 1.64 / (download) - annotate - [select for diffs], Fri Dec 30 21:38:13 2022 UTC (15 months, 2 weeks ago) by jakllsch
Branch: MAIN
Changes since 1.63: +8 -8 lines
Diff to previous 1.63 (colored) to selected 1.54 (colored)

Fix dmamap_syncs more; the number of ring elements is vq->vq_num, not
sc->sc_nvqs.

Revision 1.63 / (download) - annotate - [select for diffs], Mon Oct 31 13:00:34 2022 UTC (17 months, 2 weeks ago) by simonb
Branch: MAIN
CVS Tags: netbsd-10-base
Branch point for: netbsd-10
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored) to selected 1.54 (colored)

Use PRIx64 in a debug print macro to print a uint64_t.

Revision 1.62 / (download) - annotate - [select for diffs], Tue Oct 18 04:20:56 2022 UTC (18 months ago) by skrll
Branch: MAIN
Changes since 1.61: +8 -8 lines
Diff to previous 1.61 (colored) to selected 1.54 (colored)

KNF

Revision 1.61 / (download) - annotate - [select for diffs], Mon Oct 17 07:03:19 2022 UTC (18 months ago) by skrll
Branch: MAIN
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored) to selected 1.54 (colored)

Fix previous by using roundup (and not howmany).

Revision 1.60 / (download) - annotate - [select for diffs], Sat Oct 15 19:55:37 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.59: +3 -4 lines
Diff to previous 1.59 (colored) to selected 1.54 (colored)

virtio(4): Use howmany from sys/param.h instead of open-coding it.

howmany will divide by VIRTIO_PAGE_SIZE instead of doing &
~(VIRTIO_PAGE_SIZE - 1), but it's a constant 4096 so this should make
no difference in the compiled output except possibly at -O0.

No functional change intended.

Revision 1.59 / (download) - annotate - [select for diffs], Sat Oct 15 19:53:27 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.58: +113 -94 lines
Diff to previous 1.58 (colored) to selected 1.54 (colored)

virtio(4): Sprinkle KNF.

No functional change intended.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Aug 14 10:06:54 2022 UTC (20 months ago) by riastradh
Branch: MAIN
CVS Tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.57: +6 -5 lines
Diff to previous 1.57 (colored) to selected 1.54 (colored)

virtio(4): Print numeric device type, even if unrecognized.

Revision 1.57 / (download) - annotate - [select for diffs], Fri Aug 12 10:49:57 2022 UTC (20 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.56: +124 -40 lines
Diff to previous 1.56 (colored) to selected 1.54 (colored)

virtio(4): Membar and bus_dmamap_sync audit.

- Don't use membar_* for DMA.

- Sync only the header and payload of the rings separately as needed.
  If we bounce, this avoids large memcpy when we only care about the
  header.

- Sync uring with PREREAD before triggering anything that will return
  data in it.

  => Move uring PREREAD in virtio_enqueue_commit to _before_ updating
     vq->vq_avail->idx, which is the pointat which the DMA read is
     triggered in the `device' (host).

  => Omit needless membar_consumer in virtio_enqueue_commit -- may not
     work with DMA memory, and even if it does, redundant with
     bus_dmamap_sync uring PREREAD here.

  => XXX Does the device/host ever return unsolicited entries in the
     queue, or only solicited ones?  If only solicited ones, the
     PREREAD in virtio_init_vq is redundant.

- Sync uring with POSTREAD before we read from it.  This way the DMA
  read into our buffer has finished before we read from the buffer.

  => Add missing uring POSTREAD in virtio_vq_is_enqueued, between read of
     vq->vq_used_idx and return to caller, so that the caller can
     safely use virtio_dequeue.

  => Add missing uring POSTREADs in virtio_start_vq_intr:
     . between entry from caller and the read of vq->vq_used_idx
     . between the read of vq->vq_used_idx and return to caller,
       so that the caller can safely use virtio_dequeue, just like
       virtio_vq_is_enqueued

  => Move uring POSTREADs in virtio_enqueue_commit to _before_ reading
     vq->vq_used->flags or *vq->vq_avail_event, not after.

- After we write to aring, sync it with PREWRITE.  This way we finish
  writing to our buffer before the DMA write from it.

  => Omit needless PREWRITE in virtio_init_vq -- we do the appropriate
     PREWRITE in virtio_enqueue_commit now.

  => Convert membar_producer to bus_dmamap_sync PREWRITE in
     virtio_enqueue_commit.

  => Omit incorrect aring POSTWRITE in virtio_enqueue_commit -- no need
     because the DMA write may not have completed yet at this point,
     and we already do a POSTWRITE in virtio_vq_is_enqueued.

  => Omit needless membar_producer in virtio_postpone_intr -- may not
     work with DMA memory, and even if it does, redundant with
     bus_dmamap_sync PREWRITE here.

- After xfers to aring have completed, sync it with POSTWRITE.

  => Add missing aring POSTWRITE in virtio_free_vq, in case there are
     paths from virtio_enqueue_commit to here that don't go through
     virtio_is_enqueued.  (If there are no such paths, then maybe we
     should KASSERT(vq->vq_queued == 0) in virtio_free_vq.)

Revision 1.56 / (download) - annotate - [select for diffs], Tue Aug 9 12:42:05 2022 UTC (20 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.55: +8 -9 lines
Diff to previous 1.55 (colored) to selected 1.54 (colored)

virtio(4): Move comment for virtio_vq_intr.

No functional change intended.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Jun 18 22:11:01 2022 UTC (22 months ago) by andvar
Branch: MAIN
Changes since 1.54: +4 -4 lines
Diff to previous 1.54 (colored)

fix typos in word "functions" in comments, mainly s/fuctions/functions/.

Revision 1.54 / (download) - annotate - [selected], Sun Apr 24 11:51:09 2022 UTC (23 months, 3 weeks ago) by uwe
Branch: MAIN
Changes since 1.53: +6 -6 lines
Diff to previous 1.53 (colored)

virtio: cosmetics - use (*pfn)(...) syntax.

Some people prefer to call function pointers without an explicit
dereference (that is purely cosmetic in this position), especially to
create faux c++ s->pfn(...) with function pointers in struct members.
Some prefer explicit dereference (that requires parens around it).

(pfn)(...) without dereference but with parens looks odd to both, so
make it conform to one of the established alternatives.

Same object code is generated.

Revision 1.53 / (download) - annotate - [select for diffs], Thu Oct 28 01:36:43 2021 UTC (2 years, 5 months ago) by yamaguchi
Branch: MAIN
Changes since 1.52: +12 -7 lines
Diff to previous 1.52 (colored) to selected 1.54 (colored)

virtio: stop reinit for safety when a device resetting is failed

Revision 1.52 / (download) - annotate - [select for diffs], Thu Oct 21 07:08:55 2021 UTC (2 years, 5 months ago) by yamaguchi
Branch: MAIN
Changes since 1.51: +5 -2 lines
Diff to previous 1.51 (colored) to selected 1.54 (colored)

virtio: fix missing release of interrupt resources

Revision 1.51 / (download) - annotate - [select for diffs], Thu Oct 21 05:37:43 2021 UTC (2 years, 5 months ago) by yamaguchi
Branch: MAIN
Changes since 1.50: +10 -4 lines
Diff to previous 1.50 (colored) to selected 1.54 (colored)

virtio: reconfigure MSI-X vector on re-initialization

This may fix a problem that some interrupts, for example
link-state change of vioif(4) are not notified.

Revision 1.50 / (download) - annotate - [select for diffs], Thu Oct 21 05:32:27 2021 UTC (2 years, 5 months ago) by yamaguchi
Branch: MAIN
Changes since 1.49: +8 -3 lines
Diff to previous 1.49 (colored) to selected 1.54 (colored)

divide setup routine of virtio interrupts
into establishment and device configuration

Revision 1.42.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:49 2021 UTC (3 years ago) by thorpej
Branch: thorpej-futex
Changes since 1.42: +465 -120 lines
Diff to previous 1.42 (colored) next main 1.43 (colored) to selected 1.54 (colored)

Sync with HEAD.

Revision 1.49 / (download) - annotate - [select for diffs], Sun Feb 7 09:29:53 2021 UTC (3 years, 2 months ago) by skrll
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.48: +6 -6 lines
Diff to previous 1.48 (colored) to selected 1.54 (colored)

In virtio_alloc_vq change BUS_DMA_NOWAIT to BUS_DMA_WAITOK.  It's always
called from attach routines.

Revision 1.48 / (download) - annotate - [select for diffs], Sun Feb 7 09:26:17 2021 UTC (3 years, 2 months ago) by skrll
Branch: MAIN
Changes since 1.47: +14 -14 lines
Diff to previous 1.47 (colored) to selected 1.54 (colored)

Trailing whitespace

Revision 1.47 / (download) - annotate - [select for diffs], Fri Feb 5 20:45:38 2021 UTC (3 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.46: +26 -15 lines
Diff to previous 1.46 (colored) to selected 1.54 (colored)

Better reading of 4.1.3.1, it seems that using 32 bit reads/writes is
mandatory for non-legacy devices.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Feb 5 19:18:23 2021 UTC (3 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.45: +39 -46 lines
Diff to previous 1.45 (colored) to selected 1.54 (colored)

Second round of cleaning up endian code. No more tailored code to maintain.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Jan 28 15:43:12 2021 UTC (3 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.44: +143 -33 lines
Diff to previous 1.44 (colored) to selected 1.54 (colored)

Rewrite and streamline virtio device config read/write and explicitly cater
for the Aarch64-eb bus problem with Qemu. This removes lots of bus_space
`magic' and cleans up the code.

Revision 1.44 / (download) - annotate - [select for diffs], Wed Jan 20 21:59:48 2021 UTC (3 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.43: +11 -2 lines
Diff to previous 1.43 (colored) to selected 1.54 (colored)

Remove the virtio child driver finalisation check KASSERT that, while it
should never trigger, a possible bug in a child driver shouldn't have to panic
the kernel. Instead report the internal error.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Jan 20 19:46:48 2021 UTC (3 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.42: +326 -104 lines
Diff to previous 1.42 (colored) to selected 1.54 (colored)

Add VirtIO PCI v1.0 attachments and fix the drivers affected.

The vioif, ld, scsi, viornd and viomb devices were adjusted when needed and
tested both in legacy 0.9 and v1.0 attachments trough PCI on amd64, sparc64,
aarch64 and aarch64-eb. ACPI/FDT attachments also tested on
aarch64/aarch64-eb.

Known issues

* viomb on aarch64 works only with ACPI/FDT attachment but not with PCI
  attachment. PCI and ACPI/FDT attachment works on aarch64-eb.

* virtio on sparc64 attaches but is it not functioning though not a
  regression.

Revision 1.28.2.3 / (download) - annotate - [select for diffs], Wed Sep 23 14:31:46 2020 UTC (3 years, 6 months ago) by martin
Branch: netbsd-8
Changes since 1.28.2.2: +12 -2 lines
Diff to previous 1.28.2.2 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by jakllsch in ticket #1609):

	sys/dev/pci/virtio_pci.c: revision 1.13 (patch)
	(applied to sys/dev/pci/virtio.c)

Ensure MSI-X is disabled if allocation of MSI-X interrupts fail.

The virtio device config space moves out from under us when MSI-X
remains enabled, and/or INTx interrupts are masked if we don't ensure
this.

This un-breaks virtio devices that run out of MSI-X interrupts.
Particularly a problem on uniproc x86, where there are only 8 or 9
vectors available, allowing for only about 4 virtio devices to use
MSI-X.

Revision 1.28.2.2 / (download) - annotate - [select for diffs], Sun Sep 20 10:14:20 2020 UTC (3 years, 6 months ago) by martin
Branch: netbsd-8
Changes since 1.28.2.1: +4 -4 lines
Diff to previous 1.28.2.1 (colored) to branchpoint 1.28 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by jakllsch in ticket #1608):

	sys/dev/pci/virtio_pci.c: revision 1.12

Ensure interrupt handles buffer is zeroed on allocation
Prevents crashes trying to deallocate interrupts at shutdown.

Found by kim and mlelstv, confirmed by me

Revision 1.42 / (download) - annotate - [select for diffs], Thu Sep 17 17:09:59 2020 UTC (3 years, 7 months ago) by jakllsch
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored) to selected 1.54 (colored)

Fix word-o of function name in comment

Revision 1.41 / (download) - annotate - [select for diffs], Mon May 25 07:52:16 2020 UTC (3 years, 10 months ago) by yamaguchi
Branch: MAIN
Changes since 1.40: +19 -17 lines
Diff to previous 1.40 (colored) to selected 1.54 (colored)

Set handlers implemented in child device of virtio(4) to virtqueue
instead of the commonized function

Revision 1.40 / (download) - annotate - [select for diffs], Mon May 25 07:37:47 2020 UTC (3 years, 10 months ago) by yamaguchi
Branch: MAIN
Changes since 1.39: +4 -3 lines
Diff to previous 1.39 (colored) to selected 1.54 (colored)

Register an interrupt handler for virtqueue to that for pci
to reduce function call

Revision 1.39 / (download) - annotate - [select for diffs], Mon May 25 07:29:52 2020 UTC (3 years, 10 months ago) by yamaguchi
Branch: MAIN
Changes since 1.38: +5 -59 lines
Diff to previous 1.38 (colored) to selected 1.54 (colored)

Remove VIRTIO_F_PCI_INTR_SOFTINT support for multiqueue

The functionality is no longer used by obsolating VIOIF_SOFTINT_INTR.

Revision 1.35.2.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:04:45 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.35.2.1: +3 -8 lines
Diff to previous 1.35.2.1 (colored) to branchpoint 1.35 (colored) next main 1.36 (colored) to selected 1.54 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.38 / (download) - annotate - [select for diffs], Tue Oct 1 18:00:08 2019 UTC (4 years, 6 months ago) by chs
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.37: +3 -8 lines
Diff to previous 1.37 (colored) to selected 1.54 (colored)

in many device attach paths, allocate memory with KM_SLEEP instead of KM_NOSLEEP
and remove code to handle failures that can no longer happen.

Revision 1.35.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:07:27 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.35: +106 -12 lines
Diff to previous 1.35 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.30.2.3 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:42 2019 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.30.2.2: +103 -12 lines
Diff to previous 1.30.2.2 (colored) to branchpoint 1.30 (colored) next main 1.31 (colored) to selected 1.54 (colored)

Synch with HEAD

Revision 1.37 / (download) - annotate - [select for diffs], Mon Jan 14 14:55:37 2019 UTC (5 years, 3 months ago) by yamaguchi
Branch: MAIN
CVS Tags: phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2
Changes since 1.36: +103 -12 lines
Diff to previous 1.36 (colored) to selected 1.54 (colored)

Add multiqueue support, virtio(4)

Revision 1.30.2.2 / (download) - annotate - [select for diffs], Sat Oct 20 06:58:43 2018 UTC (5 years, 6 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.30.2.1: +5 -2 lines
Diff to previous 1.30.2.1 (colored) to branchpoint 1.30 (colored) to selected 1.54 (colored)

Sync with head

Revision 1.36 / (download) - annotate - [select for diffs], Sun Sep 30 15:44:22 2018 UTC (5 years, 6 months ago) by jmcneill
Branch: MAIN
CVS Tags: pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020
Changes since 1.35: +5 -2 lines
Diff to previous 1.35 (colored) to selected 1.54 (colored)

Suppress "not configured" message when no device is present

Revision 1.30.2.1 / (download) - annotate - [select for diffs], Mon Jun 25 07:26:01 2018 UTC (5 years, 9 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.30: +60 -416 lines
Diff to previous 1.30 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.35 / (download) - annotate - [select for diffs], Fri Jun 15 17:13:43 2018 UTC (5 years, 10 months ago) by jakllsch
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, jdolecek-ncqfixes-base, jdolecek-ncqfixes
Branch point for: phil-wifi
Changes since 1.34: +13 -2 lines
Diff to previous 1.34 (colored) to selected 1.54 (colored)

Add cfprint_t virtiobusprint() and use it for virtio_mmio.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Jun 15 01:37:40 2018 UTC (5 years, 10 months ago) by jakllsch
Branch: MAIN
Changes since 1.33: +4 -4 lines
Diff to previous 1.33 (colored) to selected 1.54 (colored)

Fix queue address setup bug introduced in 1.31.

This use-before-initialization problem resulted in non-zero queues never
being initialized with their virtqueue pointer, and queue zero's pointer
to be clobbered with the virtqueue pointer for the higest-indexed ring.

Revision 1.33 / (download) - annotate - [select for diffs], Wed Jun 6 17:17:31 2018 UTC (5 years, 10 months ago) by jakllsch
Branch: MAIN
Changes since 1.32: +2 -6 lines
Diff to previous 1.32 (colored) to selected 1.54 (colored)

remove now-irrelevant <dev/pci> includes

Revision 1.32 / (download) - annotate - [select for diffs], Wed Jun 6 16:11:36 2018 UTC (5 years, 10 months ago) by jakllsch
Branch: MAIN
Changes since 1.31: +3 -3 lines
Diff to previous 1.31 (colored) to selected 1.54 (colored)

fix up virtio module for current structure; add virtio_pci module

Revision 1.31 / (download) - annotate - [select for diffs], Sat Jun 2 22:43:15 2018 UTC (5 years, 10 months ago) by jakllsch
Branch: MAIN
Changes since 1.30: +48 -411 lines
Diff to previous 1.30 (colored) to selected 1.54 (colored)

Begin to detangle virtio from its PCI attachment

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Mon Feb 19 18:19:15 2018 UTC (6 years, 1 month ago) by snj
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.28: +7 -2 lines
Diff to previous 1.28 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by uwe in ticket #553):
	sys/dev/pci/virtio_pci.c: 1.2 via patch to sys/dev/pci/virtio.c
Explicitly enable PCI_COMMAND_MASTER_ENABLE and PCI_COMMAND_IO_ENABLE.
Recent versions of VirtualBox do not enable bus-mastering by default -
this will be fixed, but it doesn't hurt to do it ourselves too.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Feb 14 14:04:48 2018 UTC (6 years, 2 months ago) by uwe
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.29: +4 -4 lines
Diff to previous 1.29 (colored) to selected 1.54 (colored)

Cosmetic - consistently use #define<SPACE>

Revision 1.3.12.2 / (download) - annotate - [select for diffs], Sun Dec 3 11:37:29 2017 UTC (6 years, 4 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.3.12.1: +457 -156 lines
Diff to previous 1.3.12.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

update from HEAD

Revision 1.7.2.8 / (download) - annotate - [select for diffs], Mon Aug 28 17:52:25 2017 UTC (6 years, 7 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.7: +208 -210 lines
Diff to previous 1.7.2.7 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.29 / (download) - annotate - [select for diffs], Wed Aug 2 08:39:14 2017 UTC (6 years, 8 months ago) by cherry
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, nick-nhusb-base-20170825
Changes since 1.28: +5 -160 lines
Diff to previous 1.28 (colored) to selected 1.54 (colored)

Reorg the virtio(4) config(9) code to be explicitly pci specific.

We'll later use this for a non-pci virtio(4) usecase.

ok martin

Revision 1.28 / (download) - annotate - [select for diffs], Thu Jun 1 02:45:11 2017 UTC (6 years, 10 months ago) by chs
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: netbsd-8
Changes since 1.27: +2 -14 lines
Diff to previous 1.27 (colored) to selected 1.54 (colored)

remove checks for failure after memory allocation calls that cannot fail:

  kmem_alloc() with KM_SLEEP
  kmem_zalloc() with KM_SLEEP
  percpu_alloc()
  pserialize_create()
  psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Wed Apr 26 02:53:22 2017 UTC (6 years, 11 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.16.2.2: +242 -76 lines
Diff to previous 1.16.2.2 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.19.2.1 / (download) - annotate - [select for diffs], Fri Apr 21 16:53:51 2017 UTC (6 years, 11 months ago) by bouyer
Branch: bouyer-socketcan
Changes since 1.19: +242 -77 lines
Diff to previous 1.19 (colored) next main 1.20 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.27 / (download) - annotate - [select for diffs], Tue Mar 28 04:10:33 2017 UTC (7 years ago) by ozaki-r
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Changes since 1.26: +6 -5 lines
Diff to previous 1.26 (colored) to selected 1.54 (colored)

Handle config change interrupts to inhibit sending packets while link down

PR kern/52103 by s-yamaguchi@IIJ

Revision 1.26 / (download) - annotate - [select for diffs], Sun Mar 26 16:53:36 2017 UTC (7 years ago) by jdolecek
Branch: MAIN
Changes since 1.25: +3 -3 lines
Diff to previous 1.25 (colored) to selected 1.54 (colored)

fix pasto for nbo_bus_space_write_4() - value needs to be uint32_t

Revision 1.25 / (download) - annotate - [select for diffs], Sun Mar 26 13:51:45 2017 UTC (7 years ago) by martin
Branch: MAIN
Changes since 1.24: +2 -8 lines
Diff to previous 1.24 (colored) to selected 1.54 (colored)

Duh, remove accidently left over debug printfs

Revision 1.24 / (download) - annotate - [select for diffs], Sun Mar 26 12:36:43 2017 UTC (7 years ago) by martin
Branch: MAIN
Changes since 1.23: +2 -9 lines
Diff to previous 1.23 (colored) to selected 1.54 (colored)

Backout previous, no need for these accessor in MD code

Revision 1.23 / (download) - annotate - [select for diffs], Sun Mar 26 10:36:10 2017 UTC (7 years ago) by martin
Branch: MAIN
Changes since 1.22: +17 -3 lines
Diff to previous 1.22 (colored) to selected 1.54 (colored)

Provide an accessor for the pci attach args of a virtio device (if
available - future non-pci attachments may return NULL).
Sparc64 MD code needs this to match the OF node of the virtio device
for boot device recognition.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Mar 25 18:02:06 2017 UTC (7 years ago) by jdolecek
Branch: MAIN
Changes since 1.21: +162 -39 lines
Diff to previous 1.21 (colored) to selected 1.54 (colored)

reorganize the attachment process for virtio child devices, so that
more common code is shared among the drivers, and it's possible for
the drivers to be correctly dynamically loaded; forbid direct access
to struct virtio_softc from the child driver code

Revision 1.21 / (download) - annotate - [select for diffs], Sat Mar 25 17:50:51 2017 UTC (7 years ago) by jdolecek
Branch: MAIN
Changes since 1.20: +7 -7 lines
Diff to previous 1.20 (colored) to selected 1.54 (colored)

use ipl level specified by child when attaching interrupts, instead of always
using IPL_NET

Revision 1.20 / (download) - annotate - [select for diffs], Sat Mar 25 13:05:09 2017 UTC (7 years ago) by martin
Branch: MAIN
Changes since 1.19: +71 -31 lines
Diff to previous 1.19 (colored) to selected 1.54 (colored)

PR kern/52107: for now (while we still use the legacy virtio spec) at least
hack around the endianess issues with that.

Revision 1.6.6.1 / (download) - annotate - [select for diffs], Wed Jan 18 08:46:42 2017 UTC (7 years, 3 months ago) by skrll
Branch: netbsd-7-nhusb
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored) next main 1.7 (colored) to selected 1.54 (colored)

Sync with netbsd-5

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:40 2017 UTC (7 years, 3 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.16.2.1: +2 -3 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored) to selected 1.54 (colored)

Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.6.2.1 / (download) - annotate - [select for diffs], Fri Dec 23 05:57:40 2016 UTC (7 years, 3 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-nhusb-base-20170116, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored) next main 1.7 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by bsiegert in ticket #1337):
	sys/dev/pci/if_vioif.c: revision 1.21
	sys/dev/pci/virtio.c: revision 1.14
PR/50636: Ryo ONODERA: Fix incorrect kmem_free()
--
PR/50636: Ryo ONODERA: Reduce memory use

Revision 1.7.2.7 / (download) - annotate - [select for diffs], Mon Dec 5 10:55:16 2016 UTC (7 years, 4 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.6: +2 -3 lines
Diff to previous 1.7.2.6 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.19 / (download) - annotate - [select for diffs], Tue Nov 29 22:04:42 2016 UTC (7 years, 4 months ago) by uwe
Branch: MAIN
CVS Tags: pgoyette-localcount-20170320, pgoyette-localcount-20170107, nick-nhusb-base-20170204, nick-nhusb-base-20161204, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.18: +2 -3 lines
Diff to previous 1.18 (colored) to selected 1.54 (colored)

Fix the "typical usage" example for enqueuing a request - if
bus_dmamap_load(9) fails, we shouldn't call bus_dmamap_unload(9).

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Fri Nov 4 14:49:15 2016 UTC (7 years, 5 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.16: +63 -18 lines
Diff to previous 1.16 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.7.2.6 / (download) - annotate - [select for diffs], Wed Oct 5 20:55:55 2016 UTC (7 years, 6 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.5: +67 -21 lines
Diff to previous 1.7.2.5 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.18 / (download) - annotate - [select for diffs], Tue Sep 27 03:33:32 2016 UTC (7 years, 6 months ago) by pgoyette
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104, nick-nhusb-base-20161004
Changes since 1.17: +63 -18 lines
Diff to previous 1.17 (colored) to selected 1.54 (colored)

Modularize the ld driver and all of its attachments.  Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).

Revision 1.17 / (download) - annotate - [select for diffs], Sun Aug 14 07:47:15 2016 UTC (7 years, 8 months ago) by tron
Branch: MAIN
CVS Tags: localcount-20160914
Changes since 1.16: +4 -3 lines
Diff to previous 1.16 (colored) to selected 1.54 (colored)

Prevent a panic during system shutdown when vioif(4) is used

Revision 1.16 / (download) - annotate - [select for diffs], Mon Jul 11 06:14:51 2016 UTC (7 years, 9 months ago) by knakahara
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726
Branch point for: pgoyette-localcount
Changes since 1.15: +4 -4 lines
Diff to previous 1.15 (colored) to selected 1.54 (colored)

pci_intr_type() is required pci_chipset_tag_t argument by other than x86.

pointed out by nonaka@n.o.

Revision 1.7.2.5 / (download) - annotate - [select for diffs], Sat Jul 9 20:25:14 2016 UTC (7 years, 9 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.4: +10 -8 lines
Diff to previous 1.7.2.4 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.15 / (download) - annotate - [select for diffs], Thu Jul 7 06:55:41 2016 UTC (7 years, 9 months ago) by msaitoh
Branch: MAIN
CVS Tags: nick-nhusb-base-20160907
Changes since 1.14: +10 -8 lines
Diff to previous 1.14 (colored) to selected 1.54 (colored)

KNF. Remove extra spaces. No functional change.

Revision 1.7.2.4 / (download) - annotate - [select for diffs], Sat Mar 19 11:30:18 2016 UTC (8 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.3: +3 -3 lines
Diff to previous 1.7.2.3 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jan 10 03:07:25 2016 UTC (8 years, 3 months ago) by christos
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored) to selected 1.54 (colored)

PR/50636: Ryo ONODERA: Fix incorrect kmem_free()

Revision 1.7.2.3 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:57 2015 UTC (8 years, 3 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.2: +270 -39 lines
Diff to previous 1.7.2.2 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.13 / (download) - annotate - [select for diffs], Fri Oct 30 20:38:31 2015 UTC (8 years, 5 months ago) by christos
Branch: MAIN
CVS Tags: nick-nhusb-base-20151226
Changes since 1.12: +14 -13 lines
Diff to previous 1.12 (colored) to selected 1.54 (colored)

more device names

Revision 1.12 / (download) - annotate - [select for diffs], Tue Oct 27 23:08:27 2015 UTC (8 years, 5 months ago) by christos
Branch: MAIN
Changes since 1.11: +6 -3 lines
Diff to previous 1.11 (colored) to selected 1.54 (colored)

use dma64 if available so we don't have do bounce around too much.

Revision 1.11 / (download) - annotate - [select for diffs], Mon Oct 26 01:44:48 2015 UTC (8 years, 5 months ago) by ozaki-r
Branch: MAIN
Changes since 1.10: +254 -28 lines
Diff to previous 1.10 (colored) to selected 1.54 (colored)

Support MSI-X in virtio

Currently only vioif(4) uses the feature.

knakahara@ helped to migrate to pci_intr_alloc(9). Thanks!

Revision 1.10 / (download) - annotate - [select for diffs], Thu Oct 15 02:40:38 2015 UTC (8 years, 6 months ago) by ozaki-r
Branch: MAIN
Changes since 1.9: +4 -3 lines
Diff to previous 1.9 (colored) to selected 1.54 (colored)

Name the interrupt handler for intrctl

Revision 1.7.2.2 / (download) - annotate - [select for diffs], Sat Jun 6 14:40:12 2015 UTC (8 years, 10 months ago) by skrll
Branch: nick-nhusb
Changes since 1.7.2.1: +4 -5 lines
Diff to previous 1.7.2.1 (colored) to branchpoint 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.9 / (download) - annotate - [select for diffs], Tue May 5 10:58:35 2015 UTC (8 years, 11 months ago) by ozaki-r
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921, nick-nhusb-base-20150606
Changes since 1.8: +2 -3 lines
Diff to previous 1.8 (colored) to selected 1.54 (colored)

Remove a garbage blank line

Revision 1.7.2.1 / (download) - annotate - [select for diffs], Mon Apr 6 15:18:12 2015 UTC (9 years ago) by skrll
Branch: nick-nhusb
Changes since 1.7: +30 -4 lines
Diff to previous 1.7 (colored) to selected 1.54 (colored)

Sync with HEAD

Revision 1.8 / (download) - annotate - [select for diffs], Fri Dec 19 06:54:40 2014 UTC (9 years, 4 months ago) by ozaki-r
Branch: MAIN
CVS Tags: nick-nhusb-base-20150406
Changes since 1.7: +30 -4 lines
Diff to previous 1.7 (colored) to selected 1.54 (colored)

Implement softint-based interrupt handling in if_vioif

Softint-based interrupt handling is considered as a future direction
of the (network) device driver architecture in NetBSD. pq3etsec of
ppc is already implemented based on the architecture (unlike pq3etsec,
this change doesn't include softint-based if_start). In this
architecture, a hardware interrupt handler just schedules a softint
and the softint performs actual interrupt processing. It reduces
processing in hardware interrupt context and allows Layer 2 network
stack (e.g., bridge, vlan and even bpf) run in softint context,
which makes it easy to implement fine-grain locking in the layer.

This is an experimental implementation of the architecture in if_viof.

virtio introduces a new flag VIRTIO_F_PCI_INTR_SOFTINT. If a driver
of virtio sets it to sc_flags of virtio_softc, virtio calls
softint_schedule in virtio_intr instead of directly calling the
interrupt handler of the driver.

When VIOIF_SOFTINT_INTR is on, vioif doesn't use the existing softint
(vioif_rx_softint) that is called from vioif_rx_vq_done. Because
vioif_rx_softint already runs in softint context and another softint
isn't needed. This change actually improves performance in some cases.

The feature is disabled by default and enabled when SOFTINT_INTR is
set somewhere (normally in a kernel configuration).

Revision 1.7 / (download) - annotate - [select for diffs], Mon Oct 6 13:31:54 2014 UTC (9 years, 6 months ago) by mlelstv
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.6: +5 -5 lines
Diff to previous 1.6 (colored) to selected 1.54 (colored)

use correct macro to handle subsys ids. Functional there is no
change, as both macros select the same bits.

Revision 1.3.12.1 / (download) - annotate - [select for diffs], Wed Aug 20 00:03:48 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.3: +14 -5 lines
Diff to previous 1.3 (colored) to selected 1.54 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.5.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:54:56 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.5: +8 -2 lines
Diff to previous 1.5 (colored) next main 1.6 (colored) to selected 1.54 (colored)

Rebase.

Revision 1.6 / (download) - annotate - [select for diffs], Tue Jul 22 01:55:54 2014 UTC (9 years, 9 months ago) by ozaki-r
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-nhusb-base, netbsd-7-base, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0
Branch point for: netbsd-7-nhusb, netbsd-7
Changes since 1.5: +8 -2 lines
Diff to previous 1.5 (colored) to selected 1.54 (colored)

Introduce VIRTIO_F_PCI_INTR_MPSAFE for virtio

It is set by a child driver, e.g., if_vioif. If set, virtio sets
PCI_INTR_MPSAFE for pci_intr_establish.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Thu May 22 11:40:34 2014 UTC (9 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.2.2.1: +8 -5 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.54 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.3.16.2 / (download) - annotate - [select for diffs], Sun May 18 17:45:44 2014 UTC (9 years, 11 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.3.16.1: +4 -3 lines
Diff to previous 1.3.16.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

sync with head

Revision 1.5 / (download) - annotate - [select for diffs], Sat Mar 29 19:28:25 2014 UTC (10 years ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Branch point for: tls-earlyentropy
Changes since 1.4: +4 -3 lines
Diff to previous 1.4 (colored) to selected 1.54 (colored)

make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.

Revision 1.3.22.1 / (download) - annotate - [select for diffs], Sat Sep 7 16:01:28 2013 UTC (10 years, 7 months ago) by bouyer
Branch: netbsd-6-1
CVS Tags: netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE
Changes since 1.3: +6 -4 lines
Diff to previous 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by tsutsui in ticket #931):
	sys/dev/pci/virtio.c: revision 1.4
Make sure to check if the driver has a valid intr handler in virtio_detach().
Fixes a panic during shutdown on KVM under ubuntu 13.04 with virtio,
as reported in PR kern/48105 by Richard Hansen.
Should be pulled up to netbsd-6 branches.

Revision 1.3.14.1 / (download) - annotate - [select for diffs], Sat Sep 7 16:01:25 2013 UTC (10 years, 7 months ago) by bouyer
Branch: netbsd-6-0
CVS Tags: netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE
Changes since 1.3: +6 -4 lines
Diff to previous 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by tsutsui in ticket #931):
	sys/dev/pci/virtio.c: revision 1.4
Make sure to check if the driver has a valid intr handler in virtio_detach().
Fixes a panic during shutdown on KVM under ubuntu 13.04 with virtio,
as reported in PR kern/48105 by Richard Hansen.
Should be pulled up to netbsd-6 branches.

Revision 1.3.8.1 / (download) - annotate - [select for diffs], Sat Sep 7 16:01:03 2013 UTC (10 years, 7 months ago) by bouyer
Branch: netbsd-6
Changes since 1.3: +6 -4 lines
Diff to previous 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by tsutsui in ticket #931):
	sys/dev/pci/virtio.c: revision 1.4
Make sure to check if the driver has a valid intr handler in virtio_detach().
Fixes a panic during shutdown on KVM under ubuntu 13.04 with virtio,
as reported in PR kern/48105 by Richard Hansen.
Should be pulled up to netbsd-6 branches.

Revision 1.3.16.1 / (download) - annotate - [select for diffs], Wed Aug 28 23:59:26 2013 UTC (10 years, 7 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.3: +6 -4 lines
Diff to previous 1.3 (colored) to selected 1.54 (colored)

sync with head

Revision 1.4 / (download) - annotate - [select for diffs], Sat Aug 10 18:01:31 2013 UTC (10 years, 8 months ago) by tsutsui
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.3: +6 -4 lines
Diff to previous 1.3 (colored) to selected 1.54 (colored)

Make sure to check if the driver has a valid intr handler in virtio_detach().

Fixes a panic during shutdown on KVM under ubuntu 13.04 with virtio,
as reported in PR kern/48105 by Richard Hansen.

Should be pulled up to netbsd-6 branches.

Revision 1.3.6.2 / (download) - annotate - [select for diffs], Wed Jan 25 21:18:15 2012 UTC (12 years, 2 months ago) by riz
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2
Changes since 1.3.6.1: +1015 -0 lines
Diff to previous 1.3.6.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored) to selected 1.54 (colored)

Pull up following revision(s) (requested by hannken in ticket #1715):
- Be robust against an invalid timer period value.
sys/dev/ic/hpetreg.h			Rev. 1.4
sys/dev/ic/hpet.c			Rev. 1.8

- Fix wrong definition of LAPIC_LEVEL_ASSERT / _MASK
sys/arch/x86/include/i82489reg.h	Rev. 1.11

- Add virtio driver - speed up disk and network access in virtual environments
sys/arch/i386/conf/GENERIC		Rev. 1.1055
sys/arch/i386/conf/ALL			Rev. 1.325
sys/arch/amd64/conf/GENERIC		Rev. 1.338
sys/dev/pci/files.pci			Rev. 1.350
sys/dev/pci/if_vioif.c			Rev. 0-1.2
sys/dev/pci/ld_virtio.c			Rev. 0-1.4
sys/dev/pci/viomb.c			Rev. 0-1.1
sys/dev/pci/virtio.c			Rev. 0-1.3
sys/dev/pci/virtioreg.h			Rev. 0-1.1
sys/dev/pci/virtiovar.h			Rev. 0-1.1
distrib/sets/lists/man/mi		Rev. 1.1352 and 1.1358
share/man/man4/Makefile			Rev. 1.573 and 1.575
share/man/man4/ld.4			Rev. 1.19
share/man/man4/virtio.4			Rev. 0-1.4
share/man/man4/vioif.4			Rev. 0-1.2
share/man/man4/viomb.4			Rev. 0-1.2

Allow NetBSD to run unmodified under Linux/kvm.

Revision 1.2.2.1 / (download) - annotate - [select for diffs], Thu Nov 10 14:31:47 2011 UTC (12 years, 5 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored) to selected 1.54 (colored)

sync with head

Revision 1.3.6.1, Wed Nov 2 23:05:52 2011 UTC (12 years, 5 months ago) by riz
Branch: netbsd-5
Changes since 1.3: +0 -1016 lines
FILE REMOVED

file virtio.c was added on branch netbsd-5 on 2012-01-25 21:18:15 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Wed Nov 2 23:05:52 2011 UTC (12 years, 5 months ago) by njoly
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-1-RELEASE, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet, netbsd-6-1, netbsd-6-0, netbsd-6, netbsd-5
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored) to selected 1.54 (colored)

Small typo in symbolic name.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Nov 2 15:18:46 2011 UTC (12 years, 5 months ago) by jakllsch
Branch: MAIN
CVS Tags: yamt-pagecache-base
Branch point for: yamt-pagecache
Changes since 1.1: +6 -4 lines
Diff to previous 1.1 (colored) to selected 1.54 (colored)

Use symbolic PCI_PRODUCTs.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Oct 30 12:12:21 2011 UTC (12 years, 5 months ago) by hannken
Branch: MAIN
Diff to selected 1.54 (colored)

Import of the virtio driver written by MINOURA Makoto <minoura@netbsd.org>
with minor changes to make it compile an run on -current.  This driver
speeds up disk and network access in virtual environments like KVM.

Enabled on i386 and amd64.  Tested with a CentOS 5.7 x86_64 host.

See http://ozlabs.org/~rusty/virtio-spec/virtio.pdf for the specification.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>