Displaying 20 results from an estimated 23 matches for "hotplug_mutex".
2020 Mar 02
0
[PATCH v1 02/11] virtio-mem: Paravirtualized memory hotplug
...ne page.
+ */
+ unsigned long *sb_bitmap;
+
+ /*
+ * Mutex that protects the nb_mb_state, mb_state, and sb_bitmap.
+ *
+ * When this lock is held the pointers can't change, ONLINE and
+ * OFFLINE blocks can't change the state and no subblocks will get
+ * plugged.
+ */
+ struct mutex hotplug_mutex;
+ bool hotplug_active;
+
+ /* An error occurred we cannot handle - stop processing requests. */
+ bool broken;
+
+ /* The driver is being removed. */
+ spinlock_t removal_lock;
+ bool removing;
+
+ /* Timer for retrying to plug/unplug memory. */
+ struct hrtimer retry_timer;
+#define VIRTIO_MEM_RE...
2020 May 07
17
[PATCH v4 00/15] virtio-mem: paravirtualized memory
This series is based on v5.7-rc4. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v4
This is basically a resend of v3 [1], now based on v5.7-rc4 and restested.
One patch was reshuffled and two ACKs I missed to add were added. The
rebase did not require any modifications to patches.
Details about virtio-mem can be found in the cover letter of v2 [2]. A
2019 Dec 12
19
[PATCH RFC v4 00/13] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-rfc-v4
The basic idea of virtio-mem is to provide a flexible,
cross-architecture memory hot(un)plug solution that avoids many limitations
imposed by existing technologies, architectures, and interfaces. More
details can be found below and in linked material.
This
2019 Dec 12
19
[PATCH RFC v4 00/13] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-rfc-v4
The basic idea of virtio-mem is to provide a flexible,
cross-architecture memory hot(un)plug solution that avoids many limitations
imposed by existing technologies, architectures, and interfaces. More
details can be found below and in linked material.
This
2020 Mar 11
12
[PATCH v2 00/10] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v2
I now have acks for all !virtio-mem changes. I'll be happy to get review
feedback, testing reports, etc. for the virtio-mem changes. If there are
no further comments, I guess this is good to go as a v1 soon.
The basic idea of virtio-mem is to provide a
2019 Sep 19
14
[PATCH RFC v3 0/9] virtio-mem: paravirtualized memory
Long time no RFC! I finally had time to get the next version of the Linux
driver side of virtio-mem into shape, incorporating ideas and feedback from
previous discussions.
This RFC is based on the series currently on the mm list:
- [PATCH 0/3] Remove __online_page_set_limits()
- [PATCH v1 0/3] mm/memory_hotplug: Export generic_online_page()
- [PATCH v4 0/8] mm/memory_hotplug: Shrink zones before
2020 May 07
20
[PATCH v3 00/15] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v3
Patch #1 - #10 where contained in v2 and only contain minor modifications
(mostly smaller fixes). The remaining patches are new and contain smaller
optimizations.
Details about virtio-mem can be found in the cover letter of v2 [1]. A
basic QEMU implementation was
2020 May 07
20
[PATCH v3 00/15] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v3
Patch #1 - #10 where contained in v2 and only contain minor modifications
(mostly smaller fixes). The remaining patches are new and contain smaller
optimizations.
Details about virtio-mem can be found in the cover letter of v2 [1]. A
basic QEMU implementation was
2020 Mar 02
20
[PATCH v1 00/11] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v1
The basic idea of virtio-mem is to provide a flexible,
cross-architecture memory hot(un)plug solution that avoids many limitations
imposed by existing technologies, architectures, and interfaces. More
details can be found below and in linked material.
It's
2020 Mar 02
20
[PATCH v1 00/11] virtio-mem: paravirtualized memory
This series is based on latest linux-next. The patches are located at:
https://github.com/davidhildenbrand/linux.git virtio-mem-v1
The basic idea of virtio-mem is to provide a flexible,
cross-architecture memory hot(un)plug solution that avoids many limitations
imposed by existing technologies, architectures, and interfaces. More
details can be found below and in linked material.
It's
2020 Mar 02
0
[PATCH v1 07/11] virtio-mem: Allow to offline partially unplugged memory blocks
...e.g., triggered via user space). We have to be careful
@@ -616,6 +663,7 @@ static int virtio_mem_memory_notifier_cb(struct notifier_block *nb,
break;
}
vm->hotplug_active = true;
+ virtio_mem_notify_going_offline(vm, mb_id);
break;
case MEM_GOING_ONLINE:
mutex_lock(&vm->hotplug_mutex);
@@ -640,6 +688,12 @@ static int virtio_mem_memory_notifier_cb(struct notifier_block *nb,
mutex_unlock(&vm->hotplug_mutex);
break;
case MEM_CANCEL_OFFLINE:
+ if (!vm->hotplug_active)
+ break;
+ virtio_mem_notify_cancel_offline(vm, mb_id);
+ vm->hotplug_active = false;
+...
2020 Jun 08
0
[vhost:vhost 18/52] drivers/virtio/virtio_mem.c:1391:5: warning: Variable 'rc' is reassigned a value before the old one has been used.
...rc = -EINVAL;
1376
1377 vdev->priv = vm = kzalloc(sizeof(*vm), GFP_KERNEL);
1378 if (!vm)
1379 return -ENOMEM;
1380
1381 init_waitqueue_head(&vm->host_resp);
1382 vm->vdev = vdev;
1383 INIT_WORK(&vm->wq, virtio_mem_run_wq);
1384 mutex_init(&vm->hotplug_mutex);
1385 INIT_LIST_HEAD(&vm->next);
1386 spin_lock_init(&vm->removal_lock);
1387 hrtimer_init(&vm->retry_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1388 vm->retry_timer.function = virtio_mem_timer_expired;
1389
1390 /* register the virtqueue */
> 1391 rc...
2020 Jul 30
7
[PATCH v2 0/6] mm / virtio-mem: support ZONE_MOVABLE
@Andrew, @Mst, I suggest the whole series (including the virtio-mem
change) goes via the -mm tree.
Currently, virtio-mem does not really support ZONE_MOVABLE. While it allows
to online fully plugged memory blocks to ZONE_MOVABLE, it does not allow
to online partially-plugged memory blocks to ZONE_MOVABLE and will never
consider such memory blocks when unplugging memory. This might be
surprising
2020 May 05
2
[vhost:vhost 8/22] drivers/virtio/virtio_mem.c:1375:20: error: implicit declaration of function 'kzalloc'; did you mean 'vzalloc'?
...= -EINVAL;
1374
> 1375 vdev->priv = vm = kzalloc(sizeof(*vm), GFP_KERNEL);
1376 if (!vm)
1377 return -ENOMEM;
1378
1379 init_waitqueue_head(&vm->host_resp);
1380 vm->vdev = vdev;
1381 INIT_WORK(&vm->wq, virtio_mem_run_wq);
1382 mutex_init(&vm->hotplug_mutex);
1383 INIT_LIST_HEAD(&vm->next);
1384 spin_lock_init(&vm->removal_lock);
1385 hrtimer_init(&vm->retry_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1386 vm->retry_timer.function = virtio_mem_timer_expired;
1387
1388 /* register the virtqueue */
1389 rc = v...
2020 May 05
2
[vhost:vhost 8/22] drivers/virtio/virtio_mem.c:1375:20: error: implicit declaration of function 'kzalloc'; did you mean 'vzalloc'?
...= -EINVAL;
1374
> 1375 vdev->priv = vm = kzalloc(sizeof(*vm), GFP_KERNEL);
1376 if (!vm)
1377 return -ENOMEM;
1378
1379 init_waitqueue_head(&vm->host_resp);
1380 vm->vdev = vdev;
1381 INIT_WORK(&vm->wq, virtio_mem_run_wq);
1382 mutex_init(&vm->hotplug_mutex);
1383 INIT_LIST_HEAD(&vm->next);
1384 spin_lock_init(&vm->removal_lock);
1385 hrtimer_init(&vm->retry_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1386 vm->retry_timer.function = virtio_mem_timer_expired;
1387
1388 /* register the virtqueue */
1389 rc = v...
2020 Aug 16
9
[PATCH v5 0/6] mm / virtio-mem: support ZONE_MOVABLE
For 5.10. Patch #1-#4,#6 have RBs or ACKs, patch #5 is virtio-mem stuff
maintained by me. This should go via the -mm tree.
---
When introducing virtio-mem, the semantics of ZONE_MOVABLE were rather
unclear, which is why we special-cased ZONE_MOVABLE such that partially
plugged blocks would never end up in ZONE_MOVABLE.
Now that the semantics are much clearer (and are documented in patch #6),
2020 Aug 16
9
[PATCH v5 0/6] mm / virtio-mem: support ZONE_MOVABLE
For 5.10. Patch #1-#4,#6 have RBs or ACKs, patch #5 is virtio-mem stuff
maintained by me. This should go via the -mm tree.
---
When introducing virtio-mem, the semantics of ZONE_MOVABLE were rather
unclear, which is why we special-cased ZONE_MOVABLE such that partially
plugged blocks would never end up in ZONE_MOVABLE.
Now that the semantics are much clearer (and are documented in patch #6),
2020 Aug 04
8
[PATCH v4 0/6] mm / virtio-mem: support ZONE_MOVABLE
@Andrew can we give this a churn and consider it for v5.9 in case there
are no more comments?
Patch #1-#4,#6 have RBss or ACKs, patch #5 is virtio-mem stuff maintained
by me (and MST is aware).
---
When introducing virtio-mem, the semantics of ZONE_MOVABLE were rather
unclear, which is why we special-cased ZONE_MOVABLE such that partially
plugged blocks would never end up in ZONE_MOVABLE.
Now
2020 Aug 04
8
[PATCH v4 0/6] mm / virtio-mem: support ZONE_MOVABLE
@Andrew can we give this a churn and consider it for v5.9 in case there
are no more comments?
Patch #1-#4,#6 have RBss or ACKs, patch #5 is virtio-mem stuff maintained
by me (and MST is aware).
---
When introducing virtio-mem, the semantics of ZONE_MOVABLE were rather
unclear, which is why we special-cased ZONE_MOVABLE such that partially
plugged blocks would never end up in ZONE_MOVABLE.
Now
2020 Aug 04
8
[PATCH v3 0/6] mm / virtio-mem: support ZONE_MOVABLE
@Andrew can we give this a churn and consider it for v5.9 in case there
are no more comments?
Patch #1-#4 have RB's, patch #5 is virtio-mem stuff maintained by me,
patch #6 is just a doc update.
---
Currently, virtio-mem does not really support ZONE_MOVABLE. While it allows
to online fully plugged memory blocks to ZONE_MOVABLE, it does not allow
to online partially-plugged memory blocks to