diff --git a/Doc/library/asyncio-queue.rst b/Doc/library/asyncio-queue.rst
index 289ad1b..e6f26bb 100644
--- a/Doc/library/asyncio-queue.rst
+++ b/Doc/library/asyncio-queue.rst
@@ -105,6 +105,13 @@
       Raises :exc:`ValueError` if called more times than there were
       items placed in the queue.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 Priority Queue
 ==============
diff --git a/Doc/library/asyncio-stream.rst b/Doc/library/asyncio-stream.rst
index ad3c744..b3e229c 100644
--- a/Doc/library/asyncio-stream.rst
+++ b/Doc/library/asyncio-stream.rst
@@ -70,6 +70,14 @@
 
       The *ssl_handshake_timeout* parameter.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
+
 .. coroutinefunction:: start_server(client_connected_cb, host=None, \
                           port=None, *, limit=None, \
                           family=socket.AF_UNSPEC, \
@@ -100,6 +108,13 @@
 
       The *ssl_handshake_timeout* and *start_serving* parameters.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 .. rubric:: Unix Sockets
 
@@ -124,6 +139,13 @@
 
       The *path* parameter can now be a :term:`path-like object`
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 .. coroutinefunction:: start_unix_server(client_connected_cb, path=None, \
                           *, limit=None, sock=None, backlog=100, ssl=None, \
@@ -145,6 +167,13 @@
 
       The *path* parameter can now be a :term:`path-like object`.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 StreamReader
 ============
diff --git a/Doc/library/asyncio-subprocess.rst b/Doc/library/asyncio-subprocess.rst
index ef4d9bc..fd1f9c9 100644
--- a/Doc/library/asyncio-subprocess.rst
+++ b/Doc/library/asyncio-subprocess.rst
@@ -75,6 +75,13 @@
    See the documentation of :meth:`loop.subprocess_exec` for other
    parameters.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 .. coroutinefunction:: create_subprocess_shell(cmd, stdin=None, \
                           stdout=None, stderr=None, limit=None, **kwds)
@@ -99,6 +106,13 @@
       escape whitespace and special shell characters in strings that are going
       to be used to construct shell commands.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 .. note::
 
    Subprocesses are available for Windows if a :class:`ProactorEventLoop` is
diff --git a/Doc/library/asyncio-sync.rst b/Doc/library/asyncio-sync.rst
index d12630a..88e523a 100644
--- a/Doc/library/asyncio-sync.rst
+++ b/Doc/library/asyncio-sync.rst
@@ -63,6 +63,12 @@
        finally:
            lock.release()
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This class has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. coroutinemethod:: acquire()
 
       Acquire the lock.
@@ -105,6 +111,12 @@
    :meth:`clear` method.  The :meth:`~Event.wait` method blocks until the
    flag is set to *true*.  The flag is set to *false* initially.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This class has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. _asyncio_example_sync_event:
 
    Example::
@@ -177,6 +189,12 @@
    ``None``.  In the latter case a new Lock object is created
    automatically.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This class has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    The preferred way to use a Condition is an :keyword:`async with`
    statement::
 
@@ -273,6 +291,12 @@
    internal counter (``1`` by default). If the given value is
    less than ``0`` a :exc:`ValueError` is raised.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This class has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    The preferred way to use a Semaphore is an :keyword:`async with`
    statement::
 
@@ -325,6 +349,13 @@
    a :exc:`ValueError` in :meth:`~Semaphore.release` if it
    increases the internal counter above the initial *value*.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This class has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 ---------
 
 
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
index 69e965c..bbdef33 100644
--- a/Doc/library/asyncio-task.rst
+++ b/Doc/library/asyncio-task.rst
@@ -297,6 +297,12 @@
    tasks to run. This can be used by long-running functions to avoid
    blocking the event loop for the full duration of the function call.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. _asyncio_example_sleep:
 
    Example of coroutine displaying the current date every second
@@ -317,6 +323,14 @@
     asyncio.run(display_date())
 
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
+
 Running Tasks Concurrently
 ==========================
 
@@ -349,6 +363,12 @@
    cancellation of one submitted Task/Future to cause other
    Tasks/Futures to be cancelled.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. _asyncio_example_gather:
 
    Example::
@@ -400,6 +420,12 @@
       If the *gather* itself is cancelled, the cancellation is
       propagated regardless of *return_exceptions*.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. deprecated:: 3.10
       Deprecation warning is emitted if no positional arguments are provided
       or not all positional arguments are Future-like objects
@@ -442,6 +468,12 @@
        except CancelledError:
            res = None
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. deprecated:: 3.10
       Deprecation warning is emitted if *aw* is not Future-like object
       and there is no running event loop.
@@ -473,6 +505,12 @@
 
    If the wait is cancelled, the future *aw* is also cancelled.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. _asyncio_example_waitfor:
 
    Example::
@@ -500,6 +538,12 @@
       for *aw* to be cancelled.  Previously, it raised
       :exc:`asyncio.TimeoutError` immediately.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
 
 Waiting Primitives
 ==================
@@ -556,6 +600,12 @@
       ``wait()`` directly is deprecated as it leads to
       :ref:`confusing behavior <asyncio_example_wait_coroutine>`.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. _asyncio_example_wait_coroutine:
    .. note::
 
@@ -583,6 +633,13 @@
           if task in done:
               # Everything will work as expected now.
 
+   .. deprecated-removed:: 3.8 3.10
+
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. deprecated-removed:: 3.8 3.11
 
       Passing coroutine objects to ``wait()`` directly is
@@ -599,12 +656,24 @@
    Raises :exc:`asyncio.TimeoutError` if the timeout occurs before
    all Futures are done.
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    Example::
 
        for coro in as_completed(aws):
            earliest_result = await coro
            # ...
 
+   .. deprecated-removed:: 3.8 3.10
+      The ``loop`` parameter.  This function has been implicitly getting the
+      current running loop since 3.7.  See
+      :ref:`What's New in 3.10's Removed section <whatsnew310-removed>`
+      for more information.
+
    .. deprecated:: 3.10
       Deprecation warning is emitted if not all awaitable objects in the *aws*
       iterable are Future-like objects and there is no running event loop.
