Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(389)

Unified Diff: net/dns/host_resolver_impl.cc

Issue 1120733002: Narrow the instrumentation to track jank in HostResolverImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/host_resolver_impl.cc
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index 141f7f89a08145d78e2ff263a3454ccde2de86b9..6cf01c734e19962c84e1824c33465ccf6571f310 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -185,19 +185,33 @@ bool ResemblesMulticastDNSName(const std::string& hostname) {
// Attempts to connect a UDP socket to |dest|:53.
bool IsGloballyReachable(const IPAddressNumber& dest,
const BoundNetLog& net_log) {
+ // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
+ tracked_objects::ScopedTracker tracking_profile_1(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "455942 IsGloballyReachable (create udp socket)"));
+
scoped_ptr<DatagramClientSocket> socket(
ClientSocketFactory::GetDefaultFactory()->CreateDatagramClientSocket(
DatagramSocket::DEFAULT_BIND,
RandIntCallback(),
net_log.net_log(),
net_log.source()));
+ // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
+ tracked_objects::ScopedTracker tracking_profile_2(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 IsGloballyReachable (connect)"));
int rv = socket->Connect(IPEndPoint(dest, 53));
if (rv != OK)
return false;
+ tracked_objects::ScopedTracker tracking_profile_3(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "455942 IsGloballyReachable (get local addr)"));
IPEndPoint endpoint;
rv = socket->GetLocalAddress(&endpoint);
if (rv != OK)
return false;
+ tracked_objects::ScopedTracker tracking_profile_4(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION(
+ "455942 IsGloballyReachable (remainder)"));
DCHECK_EQ(ADDRESS_FAMILY_IPV6, endpoint.GetFamily());
const IPAddressNumber& address = endpoint.address();
bool is_link_local = (address[0] == 0xFE) && ((address[1] & 0xC0) == 0x80);
@@ -1887,11 +1901,17 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
LogStartRequest(source_net_log, info);
+ tracked_objects::ScopedTracker tracking_profile_1a(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 1a"));
+
IPAddressNumber ip_number;
IPAddressNumber* ip_number_ptr = nullptr;
if (ParseIPLiteralToNumber(info.hostname(), &ip_number))
ip_number_ptr = &ip_number;
+ tracked_objects::ScopedTracker tracking_profile_1b(
+ FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 1b"));
+
// Build a key that identifies the request in the cache and in the
// outstanding jobs map.
Key key = GetEffectiveKeyForRequest(info, ip_number_ptr, source_net_log);
@@ -1907,27 +1927,16 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
return rv;
}
- // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
- tracked_objects::ScopedTracker tracking_profile_3(
- FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 3"));
-
// Next we need to attach our request to a "job". This job is responsible for
// calling "getaddrinfo(hostname)" on a worker thread.
JobMap::iterator jobit = jobs_.find(key);
Job* job;
if (jobit == jobs_.end()) {
- // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
- tracked_objects::ScopedTracker tracking_profile_4(
- FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 4"));
job =
new Job(weak_ptr_factory_.GetWeakPtr(), key, priority, source_net_log);
job->Schedule(false);
- // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
- tracked_objects::ScopedTracker tracking_profile_5(
- FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 5"));
-
// Check for queue overflow.
if (dispatcher_->num_queued_jobs() > max_queued_jobs_) {
Job* evicted = static_cast<Job*>(dispatcher_->EvictOldestLowest());
@@ -1944,10 +1953,6 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
job = jobit->second;
}
- // TODO(eroman): Remove ScopedTracker below once crbug.com/455942 is fixed.
- tracked_objects::ScopedTracker tracking_profile_6(
- FROM_HERE_WITH_EXPLICIT_FUNCTION("455942 HostResolverImpl::Resolve 6"));
-
// Can't complete synchronously. Create and attach request.
scoped_ptr<Request> req(new Request(
source_net_log, info, priority, callback, addresses));
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698