diff --git a/BUILD b/BUILD
index 7795cb55649dffad6d8e784eb033ab368ddfaab9..242bfcaab6bf1bcf502b75ac076a38f496cf01f1 100644
--- a/BUILD
+++ b/BUILD
@@ -161,7 +161,6 @@ cc_library(
     "src/core/channel/context.h",
     "src/core/channel/http_client_filter.h",
     "src/core/channel/http_server_filter.h",
-    "src/core/channel/noop_filter.h",
     "src/core/channel/subchannel_call_holder.h",
     "src/core/client_config/client_config.h",
     "src/core/client_config/connector.h",
@@ -299,7 +298,6 @@ cc_library(
     "src/core/channel/connected_channel.c",
     "src/core/channel/http_client_filter.c",
     "src/core/channel/http_server_filter.c",
-    "src/core/channel/noop_filter.c",
     "src/core/channel/subchannel_call_holder.c",
     "src/core/client_config/client_config.c",
     "src/core/client_config/connector.c",
@@ -453,7 +451,6 @@ cc_library(
     "src/core/channel/context.h",
     "src/core/channel/http_client_filter.h",
     "src/core/channel/http_server_filter.h",
-    "src/core/channel/noop_filter.h",
     "src/core/channel/subchannel_call_holder.h",
     "src/core/client_config/client_config.h",
     "src/core/client_config/connector.h",
@@ -571,7 +568,6 @@ cc_library(
     "src/core/channel/connected_channel.c",
     "src/core/channel/http_client_filter.c",
     "src/core/channel/http_server_filter.c",
-    "src/core/channel/noop_filter.c",
     "src/core/channel/subchannel_call_holder.c",
     "src/core/client_config/client_config.c",
     "src/core/client_config/connector.c",
@@ -1105,7 +1101,6 @@ objc_library(
     "src/core/channel/connected_channel.c",
     "src/core/channel/http_client_filter.c",
     "src/core/channel/http_server_filter.c",
-    "src/core/channel/noop_filter.c",
     "src/core/channel/subchannel_call_holder.c",
     "src/core/client_config/client_config.c",
     "src/core/client_config/connector.c",
@@ -1256,7 +1251,6 @@ objc_library(
     "src/core/channel/context.h",
     "src/core/channel/http_client_filter.h",
     "src/core/channel/http_server_filter.h",
-    "src/core/channel/noop_filter.h",
     "src/core/channel/subchannel_call_holder.h",
     "src/core/client_config/client_config.h",
     "src/core/client_config/connector.h",
diff --git a/Makefile b/Makefile
index e538cafc10145c364a0153a35726122d4f55bc86..e3ec22a03801f2270d55168aea4543ed3558919b 100644
--- a/Makefile
+++ b/Makefile
@@ -4551,7 +4551,6 @@ LIBGRPC_SRC = \
     src/core/channel/connected_channel.c \
     src/core/channel/http_client_filter.c \
     src/core/channel/http_server_filter.c \
-    src/core/channel/noop_filter.c \
     src/core/channel/subchannel_call_holder.c \
     src/core/client_config/client_config.c \
     src/core/client_config/connector.c \
@@ -4834,7 +4833,6 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/channel/connected_channel.c \
     src/core/channel/http_client_filter.c \
     src/core/channel/http_server_filter.c \
-    src/core/channel/noop_filter.c \
     src/core/channel/subchannel_call_holder.c \
     src/core/client_config/client_config.c \
     src/core/client_config/connector.c \
diff --git a/binding.gyp b/binding.gyp
index 262c957b4c86b5317175e3241ce2ff21bc8e1625..f4e5b5ee6113f7d899c72eff860c232444733b0f 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -183,7 +183,6 @@
         'src/core/channel/connected_channel.c',
         'src/core/channel/http_client_filter.c',
         'src/core/channel/http_server_filter.c',
-        'src/core/channel/noop_filter.c',
         'src/core/channel/subchannel_call_holder.c',
         'src/core/client_config/client_config.c',
         'src/core/client_config/connector.c',
diff --git a/build.yaml b/build.yaml
index f3701dd236d1e7760ab954f0c9679c6a58ba9913..1e32eed1bacc7e667cc0bba546d0c9aeab3133a4 100644
--- a/build.yaml
+++ b/build.yaml
@@ -116,7 +116,6 @@ filegroups:
   - src/core/channel/context.h
   - src/core/channel/http_client_filter.h
   - src/core/channel/http_server_filter.h
-  - src/core/channel/noop_filter.h
   - src/core/channel/subchannel_call_holder.h
   - src/core/client_config/client_config.h
   - src/core/client_config/connector.h
@@ -231,7 +230,6 @@ filegroups:
   - src/core/channel/connected_channel.c
   - src/core/channel/http_client_filter.c
   - src/core/channel/http_server_filter.c
-  - src/core/channel/noop_filter.c
   - src/core/channel/subchannel_call_holder.c
   - src/core/client_config/client_config.c
   - src/core/client_config/connector.c
diff --git a/gRPC.podspec b/gRPC.podspec
index 79178cd7c791744972f831e4bcd0fe9c86b4efaf..e418ec79dab1fff96c8587edbb4f4e03f5e69133 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -165,7 +165,6 @@ Pod::Spec.new do |s|
                       'src/core/channel/context.h',
                       'src/core/channel/http_client_filter.h',
                       'src/core/channel/http_server_filter.h',
-                      'src/core/channel/noop_filter.h',
                       'src/core/channel/subchannel_call_holder.h',
                       'src/core/client_config/client_config.h',
                       'src/core/client_config/connector.h',
@@ -310,7 +309,6 @@ Pod::Spec.new do |s|
                       'src/core/channel/connected_channel.c',
                       'src/core/channel/http_client_filter.c',
                       'src/core/channel/http_server_filter.c',
-                      'src/core/channel/noop_filter.c',
                       'src/core/channel/subchannel_call_holder.c',
                       'src/core/client_config/client_config.c',
                       'src/core/client_config/connector.c',
@@ -463,7 +461,6 @@ Pod::Spec.new do |s|
                               'src/core/channel/context.h',
                               'src/core/channel/http_client_filter.h',
                               'src/core/channel/http_server_filter.h',
-                              'src/core/channel/noop_filter.h',
                               'src/core/channel/subchannel_call_holder.h',
                               'src/core/client_config/client_config.h',
                               'src/core/client_config/connector.h',
diff --git a/src/core/census/grpc_filter.c b/src/core/census/grpc_filter.c
index 7a6ce30612b80a18bcdf7e836d43a00c47a8f6b0..8f18cd503e3eb7c25b78e98b18ea83fc8d5ff52a 100644
--- a/src/core/census/grpc_filter.c
+++ b/src/core/census/grpc_filter.c
@@ -43,7 +43,6 @@
 #include <grpc/support/time.h>
 
 #include "src/core/channel/channel_stack.h"
-#include "src/core/channel/noop_filter.h"
 #include "src/core/statistics/census_interface.h"
 #include "src/core/statistics/census_rpc_stats.h"
 #include "src/core/transport/static_metadata.h"
diff --git a/src/core/channel/noop_filter.c b/src/core/channel/noop_filter.c
deleted file mode 100644
index 2fbf1c06bb92bc9632b289ef190b2802961ba53e..0000000000000000000000000000000000000000
--- a/src/core/channel/noop_filter.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- *
- * Copyright 2015, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "src/core/channel/noop_filter.h"
-#include <grpc/support/log.h>
-
-typedef struct call_data {
-  int unused; /* C89 requires at least one struct element */
-} call_data;
-
-typedef struct channel_data {
-  int unused; /* C89 requires at least one struct element */
-} channel_data;
-
-/* used to silence 'variable not used' warnings */
-static void ignore_unused(void *ignored) {}
-
-static void noop_mutate_op(grpc_call_element *elem,
-                           grpc_transport_stream_op *op) {
-  /* grab pointers to our data from the call element */
-  call_data *calld = elem->call_data;
-  channel_data *channeld = elem->channel_data;
-
-  ignore_unused(calld);
-  ignore_unused(channeld);
-
-  /* do nothing */
-}
-
-/* Called either:
-     - in response to an API call (or similar) from above, to send something
-     - a network event (or similar) from below, to receive something
-   op contains type and call direction information, in addition to the data
-   that is being sent or received. */
-static void noop_start_transport_stream_op(grpc_exec_ctx *exec_ctx,
-                                           grpc_call_element *elem,
-                                           grpc_transport_stream_op *op) {
-  noop_mutate_op(elem, op);
-
-  /* pass control down the stack */
-  grpc_call_next_op(exec_ctx, elem, op);
-}
-
-/* Constructor for call_data */
-static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
-                           grpc_call_element_args *args) {
-  /* grab pointers to our data from the call element */
-  call_data *calld = elem->call_data;
-  channel_data *channeld = elem->channel_data;
-
-  /* initialize members */
-  calld->unused = channeld->unused;
-}
-
-/* Destructor for call_data */
-static void destroy_call_elem(grpc_exec_ctx *exec_ctx,
-                              grpc_call_element *elem) {}
-
-/* Constructor for channel_data */
-static void init_channel_elem(grpc_exec_ctx *exec_ctx,
-                              grpc_channel_element *elem,
-                              grpc_channel_element_args *args) {
-  /* grab pointers to our data from the channel element */
-  channel_data *channeld = elem->channel_data;
-
-  /* The last filter tends to be implemented differently to
-     handle the case that there's no 'next' filter to call on the down
-     path */
-  GPR_ASSERT(!args->is_last);
-
-  /* initialize members */
-  channeld->unused = 0;
-}
-
-/* Destructor for channel data */
-static void destroy_channel_elem(grpc_exec_ctx *exec_ctx,
-                                 grpc_channel_element *elem) {
-  /* grab pointers to our data from the channel element */
-  channel_data *channeld = elem->channel_data;
-
-  ignore_unused(channeld);
-}
-
-const grpc_channel_filter grpc_no_op_filter = {
-    noop_start_transport_stream_op, grpc_channel_next_op, sizeof(call_data),
-    init_call_elem, grpc_call_stack_ignore_set_pollset, destroy_call_elem,
-    sizeof(channel_data), init_channel_elem, destroy_channel_elem,
-    grpc_call_next_get_peer, "no-op"};
diff --git a/src/core/channel/noop_filter.h b/src/core/channel/noop_filter.h
deleted file mode 100644
index ded9b33117fd9fae8eb1b84c77dbe0873461b059..0000000000000000000000000000000000000000
--- a/src/core/channel/noop_filter.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *
- * Copyright 2015, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_INTERNAL_CORE_CHANNEL_NOOP_FILTER_H
-#define GRPC_INTERNAL_CORE_CHANNEL_NOOP_FILTER_H
-
-#include "src/core/channel/channel_stack.h"
-
-/* No-op filter: simply takes everything it's given, and passes it on to the
-   next filter. Exists simply as a starting point that others can take and
-   customize for their own filters */
-extern const grpc_channel_filter grpc_no_op_filter;
-
-#endif /* GRPC_INTERNAL_CORE_CHANNEL_NOOP_FILTER_H */
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index e441d9e69562148c62114d64d4b09db91c6c6a92..b998a38ebbc6748de184043331d314c869dfdcbe 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -790,7 +790,6 @@ src/core/channel/connected_channel.h \
 src/core/channel/context.h \
 src/core/channel/http_client_filter.h \
 src/core/channel/http_server_filter.h \
-src/core/channel/noop_filter.h \
 src/core/channel/subchannel_call_holder.h \
 src/core/client_config/client_config.h \
 src/core/client_config/connector.h \
@@ -928,7 +927,6 @@ src/core/channel/compress_filter.c \
 src/core/channel/connected_channel.c \
 src/core/channel/http_client_filter.c \
 src/core/channel/http_server_filter.c \
-src/core/channel/noop_filter.c \
 src/core/channel/subchannel_call_holder.c \
 src/core/client_config/client_config.c \
 src/core/client_config/connector.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index e582c39db90ea58ed0d17328a1b0d0d61feaf708..18c5c53c3cc0a82dbbce50c44dd753ec1f20229a 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -14461,7 +14461,6 @@
       "src/core/channel/context.h", 
       "src/core/channel/http_client_filter.h", 
       "src/core/channel/http_server_filter.h", 
-      "src/core/channel/noop_filter.h", 
       "src/core/channel/subchannel_call_holder.h", 
       "src/core/client_config/client_config.h", 
       "src/core/client_config/connector.h", 
@@ -14616,8 +14615,6 @@
       "src/core/channel/http_client_filter.h", 
       "src/core/channel/http_server_filter.c", 
       "src/core/channel/http_server_filter.h", 
-      "src/core/channel/noop_filter.c", 
-      "src/core/channel/noop_filter.h", 
       "src/core/channel/subchannel_call_holder.c", 
       "src/core/channel/subchannel_call_holder.h", 
       "src/core/client_config/client_config.c", 
@@ -14973,7 +14970,6 @@
       "src/core/channel/context.h", 
       "src/core/channel/http_client_filter.h", 
       "src/core/channel/http_server_filter.h", 
-      "src/core/channel/noop_filter.h", 
       "src/core/channel/subchannel_call_holder.h", 
       "src/core/client_config/client_config.h", 
       "src/core/client_config/connector.h", 
@@ -15114,8 +15110,6 @@
       "src/core/channel/http_client_filter.h", 
       "src/core/channel/http_server_filter.c", 
       "src/core/channel/http_server_filter.h", 
-      "src/core/channel/noop_filter.c", 
-      "src/core/channel/noop_filter.h", 
       "src/core/channel/subchannel_call_holder.c", 
       "src/core/channel/subchannel_call_holder.h", 
       "src/core/client_config/client_config.c", 
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index 547b71efd843a7add1b9834264255e93b8b2db7f..1a6caf39a31211085e123ca039ca1f6e02945112 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -276,7 +276,6 @@
     <ClInclude Include="..\..\..\src\core\channel\context.h" />
     <ClInclude Include="..\..\..\src\core\channel\http_client_filter.h" />
     <ClInclude Include="..\..\..\src\core\channel\http_server_filter.h" />
-    <ClInclude Include="..\..\..\src\core\channel\noop_filter.h" />
     <ClInclude Include="..\..\..\src\core\channel\subchannel_call_holder.h" />
     <ClInclude Include="..\..\..\src\core\client_config\client_config.h" />
     <ClInclude Include="..\..\..\src\core\client_config\connector.h" />
@@ -447,8 +446,6 @@
     </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\http_server_filter.c">
     </ClCompile>
-    <ClCompile Include="..\..\..\src\core\channel\noop_filter.c">
-    </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\subchannel_call_holder.c">
     </ClCompile>
     <ClCompile Include="..\..\..\src\core\client_config\client_config.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index f42ddc53eb6ca6c945965269b317aed75d3c50c7..8afce1d2306f4c8afd7ef3955ab6dd0521119022 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -94,9 +94,6 @@
     <ClCompile Include="..\..\..\src\core\channel\http_server_filter.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\core\channel\noop_filter.c">
-      <Filter>src\core\channel</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\subchannel_call_holder.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
@@ -545,9 +542,6 @@
     <ClInclude Include="..\..\..\src\core\channel\http_server_filter.h">
       <Filter>src\core\channel</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\core\channel\noop_filter.h">
-      <Filter>src\core\channel</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\src\core\channel\subchannel_call_holder.h">
       <Filter>src\core\channel</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 0d7223463aa784941fcab7513534a3f51c027480..b3ec6e4d3f7098ce7f0fa56adffdd2d827f45ef9 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -255,7 +255,6 @@
     <ClInclude Include="..\..\..\src\core\channel\context.h" />
     <ClInclude Include="..\..\..\src\core\channel\http_client_filter.h" />
     <ClInclude Include="..\..\..\src\core\channel\http_server_filter.h" />
-    <ClInclude Include="..\..\..\src\core\channel\noop_filter.h" />
     <ClInclude Include="..\..\..\src\core\channel\subchannel_call_holder.h" />
     <ClInclude Include="..\..\..\src\core\client_config\client_config.h" />
     <ClInclude Include="..\..\..\src\core\client_config\connector.h" />
@@ -386,8 +385,6 @@
     </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\http_server_filter.c">
     </ClCompile>
-    <ClCompile Include="..\..\..\src\core\channel\noop_filter.c">
-    </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\subchannel_call_holder.c">
     </ClCompile>
     <ClCompile Include="..\..\..\src\core\client_config\client_config.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 6c8ee4d58aba5c2964a4a466b1098a70b95e6b8d..9490511d1cfb93a23c31bf4817be275b6810927e 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -34,9 +34,6 @@
     <ClCompile Include="..\..\..\src\core\channel\http_server_filter.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\core\channel\noop_filter.c">
-      <Filter>src\core\channel</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\src\core\channel\subchannel_call_holder.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
@@ -443,9 +440,6 @@
     <ClInclude Include="..\..\..\src\core\channel\http_server_filter.h">
       <Filter>src\core\channel</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\core\channel\noop_filter.h">
-      <Filter>src\core\channel</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\src\core\channel\subchannel_call_holder.h">
       <Filter>src\core\channel</Filter>
     </ClInclude>