tools/trace-malloc/rules.txt

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 # Categorization rules for spacetrace
michael@0 2 #
michael@0 3 # This file defines the stack frame rules that will categorize
michael@0 4 # allocations that spacetrace processes. The format of this file is
michael@0 5 #
michael@0 6 # <categoryname>
michael@0 7 # initial string match for stack frame n
michael@0 8 # initial string match for stack frame n+1
michael@0 9 # initial string match for stack frame n+2
michael@0 10 #
michael@0 11 # The key in the matching rule is that for every rule, we provide a
michael@0 12 # snippet of the stack frame - contiguous substring matches.
michael@0 13 # categorynames and rules substring matches are case sensitive
michael@0 14 #
michael@0 15 # Predefined Categories
michael@0 16 # "All" - All allocations [default]
michael@0 17 # "uncategorized" - All allocations that don't match any category
michael@0 18 #
michael@0 19 #
michael@0 20 # Suresh Duddi <dp@netscape.com>
michael@0 21 ###########################################################################
michael@0 22 # NOTE: This is still under definition
michael@0 23 ###########################################################################
michael@0 24 # General principle of categorization:
michael@0 25 #
michael@0 26 # - Each category, in general, denotes a module or feature.
michael@0 27 #
michael@0 28 # - We assign each allocation to the module/feature that directly
michael@0 29 # caused the allocation irrespective of which higher level module
michael@0 30 # caused the allocation. There are very few exceptions usually when
michael@0 31 # an allocation belongs both to a feature-category and to a
michael@0 32 # module-category.
michael@0 33 #
michael@0 34 # bookmarks
michael@0 35 # Bookmarks. Mainly initialization. Does not include menu cost.
michael@0 36 # css
michael@0 37 # Cascading style sheets
michael@0 38 # dom
michael@0 39 # Memory held by DOM.
michael@0 40 # font
michael@0 41 # All font stuff
michael@0 42 # global-history
michael@0 43 # html
michael@0 44 # html parsing and layout
michael@0 45 # layout
michael@0 46 # reflow, frames, line, view
michael@0 47 # images
michael@0 48 # All images.
michael@0 49 # jar
michael@0 50 # jar, zip
michael@0 51 # js
michael@0 52 # javascript
michael@0 53 # necko
michael@0 54 # All protocol and uri stuff. All urls created accounted here
michael@0 55 # preferences
michael@0 56 # Preferences stuff. All js cost for preferences is included here.
michael@0 57 ## rdf
michael@0 58 # Most of the rdf allocations. rdf cost from xul, chromeregistry,
michael@0 59 # is assigned to xul.
michael@0 60 #
michael@0 61 # wallet
michael@0 62 # Form cache.
michael@0 63 #
michael@0 64 # xbl
michael@0 65 # xbl stuff. Includes js in xbl.
michael@0 66 # xpcom
michael@0 67 # xpcom, xpt. Allocations for creations of objects are assigned
michael@0 68 # onto the respective modules
michael@0 69 # xul
michael@0 70 # XUL parsing and layout. Includes rdf overhead from xul like
michael@0 71 # nsChromeRegistry
michael@0 72 #
michael@0 73
michael@0 74
michael@0 75 #
michael@0 76
michael@0 77 # ===========================================================================
michael@0 78 # Leaf rules. We categorize them out first.
michael@0 79 # All allocations matching these rules DO belong to the category.
michael@0 80 # ===========================================================================
michael@0 81
michael@0 82 <js>
michael@0 83 nsXULPrototypeScript::Deserialize
michael@0 84
michael@0 85 <X>
michael@0 86 XSupportsLocale
michael@0 87
michael@0 88 <X>
michael@0 89 /usr/X11R6/lib/libX11.so
michael@0 90
michael@0 91 <js>
michael@0 92 JS_Init
michael@0 93
michael@0 94 <atoms>
michael@0 95 NS_NewPermanentAtom
michael@0 96
michael@0 97 <images>
michael@0 98 gif_write
michael@0 99
michael@0 100 <images>
michael@0 101 imgRequest::OnDataAvailable
michael@0 102
michael@0 103 <images>
michael@0 104 imgLoader::
michael@0 105
michael@0 106 <images>
michael@0 107 jinit_master_decompress
michael@0 108
michael@0 109 <images>
michael@0 110 jinit_marker_reader
michael@0 111
michael@0 112 <images>
michael@0 113 jinit_marker_decompress
michael@0 114
michael@0 115 <images>
michael@0 116 nsJPEGDecoder::
michael@0 117
michael@0 118 <images>
michael@0 119 nsGIFDecoder2::
michael@0 120
michael@0 121 <jar>
michael@0 122 nsZipArchive::BuildFileList
michael@0 123
michael@0 124 <jar>
michael@0 125 nsZipArchive::ReadInit
michael@0 126
michael@0 127 <jar>
michael@0 128 nsJARChannel::Open
michael@0 129
michael@0 130 <xpcom>
michael@0 131 NS_InitXPCOM2
michael@0 132
michael@0 133 # xpt file loads
michael@0 134 <xpcom>
michael@0 135 xptiInterfaceInfoManager::LoadFile
michael@0 136
michael@0 137 <xpcom>
michael@0 138 nsGenericModule::Initialize
michael@0 139
michael@0 140 <intl>
michael@0 141 nsStringBundle
michael@0 142
michael@0 143 <intl>
michael@0 144 nsLocale::
michael@0 145
michael@0 146 <intl>
michael@0 147 nsCharsetConverterManager::
michael@0 148
michael@0 149 <necko>
michael@0 150 nsDiskCacheDevice::Init
michael@0 151
michael@0 152 <necko>
michael@0 153 nsCacheEntryDescriptor::nsTransportWrapper::OpenOutputStream
michael@0 154
michael@0 155 <necko>
michael@0 156 nsSocketTransport::
michael@0 157
michael@0 158 <necko>
michael@0 159 nsCacheService::
michael@0 160
michael@0 161 <necko>
michael@0 162 nsDiskCacheStreamIO::
michael@0 163
michael@0 164 <necko>
michael@0 165 nsHttpResponseHead::
michael@0 166
michael@0 167 <wallet>
michael@0 168 WLLT
michael@0 169
michael@0 170 <xul>
michael@0 171 nsXULElement::Create
michael@0 172
michael@0 173 <xul>
michael@0 174 nsXULAttribute::Create
michael@0 175
michael@0 176 <xul>
michael@0 177 nsXULDocument::AddElementToMap
michael@0 178
michael@0 179 <xul>
michael@0 180 XULContentSinkImpl::AddAttributes
michael@0 181
michael@0 182 <xul>
michael@0 183 XULContentSinkImpl::CreateElement
michael@0 184
michael@0 185 <xul>
michael@0 186 nsXULElement::SetAttr
michael@0 187
michael@0 188 <xul>
michael@0 189 nsXULDocument::InsertElement
michael@0 190
michael@0 191 <xul>
michael@0 192 NS_NewXULContentBuilder
michael@0 193
michael@0 194 <xul>
michael@0 195 nsXULElement::AppendChildTo
michael@0 196
michael@0 197 <xbl>
michael@0 198 nsXBLPrototypeHandler::AppendHandlerText(
michael@0 199
michael@0 200 <html>
michael@0 201 FrameArena::AllocateFrame
michael@0 202
michael@0 203 <global-history>
michael@0 204 nsGlobalHistory::OpenDB
michael@0 205
michael@0 206 <font>
michael@0 207 nsFontCache::
michael@0 208
michael@0 209 <font>
michael@0 210 nsFont::nsFont
michael@0 211
michael@0 212 <gtk>
michael@0 213 gtk_init
michael@0 214
michael@0 215 <rdf>
michael@0 216 RDFServiceImpl::GetResource
michael@0 217
michael@0 218 <rdf>
michael@0 219 RDFContentSinkImpl::AddProperties
michael@0 220
michael@0 221 <rdf>
michael@0 222 RDFContainerImpl::AppendElement
michael@0 223
michael@0 224 <rdf>
michael@0 225 RDFXMLDataSourceImpl::Assert
michael@0 226
michael@0 227 <rdf>
michael@0 228 NS_NewRDFInMemoryDataSource
michael@0 229
michael@0 230 <css>
michael@0 231 CSSLoaderImpl::ParseSheet
michael@0 232
michael@0 233 <css>
michael@0 234 CSSParserImpl::Parse(
michael@0 235
michael@0 236 <css>
michael@0 237 NS_NewCSS
michael@0 238
michael@0 239 <css>
michael@0 240 RuleHash::AppendRule
michael@0 241
michael@0 242 <css>
michael@0 243 nsRuleNode::GetStyleData
michael@0 244
michael@0 245 <CSS>
michael@0 246 SelectorList::
michael@0 247
michael@0 248 <css>
michael@0 249 CSSRuleProcessor::RulesMatching
michael@0 250
michael@0 251 <css>
michael@0 252 CSSStyleSheetImpl::Clone
michael@0 253
michael@0 254 <necko>
michael@0 255 nsHttpHeaderArray::
michael@0 256
michael@0 257 <html>
michael@0 258 nsScanner::Append
michael@0 259
michael@0 260 <html>
michael@0 261 nsHTMLTokenizer::
michael@0 262
michael@0 263 <html>
michael@0 264 NS_NewHTMLTokenizer
michael@0 265
michael@0 266 <html>
michael@0 267 nsSlidingString::
michael@0 268
michael@0 269 <html>
michael@0 270 nsParser::
michael@0 271
michael@0 272 <html>
michael@0 273 nsIParserService::
michael@0 274
michael@0 275 <html>
michael@0 276 nsCParserNode::
michael@0 277
michael@0 278 <html>
michael@0 279 CNavDTD::CNavDTD
michael@0 280
michael@0 281 <html>
michael@0 282 nsHTMLDocument::
michael@0 283
michael@0 284 <layout>
michael@0 285 IncrementalReflow::AddCommand
michael@0 286
michael@0 287 <layout>
michael@0 288 nsBlockFrame::
michael@0 289
michael@0 290 <layout>
michael@0 291 nsBoxFrame::
michael@0 292
michael@0 293 <layout>
michael@0 294 nsImageFrame::
michael@0 295
michael@0 296 <layout>
michael@0 297 nsInlineFrame::
michael@0 298
michael@0 299 <layout>
michael@0 300 nsLeafFrame::
michael@0 301
michael@0 302 <layout>
michael@0 303 nsLineLayout::
michael@0 304
michael@0 305 <layout>
michael@0 306 nsReflowPath::EnsureSubtreeFor
michael@0 307
michael@0 308 <layout>
michael@0 309 nsSliderFrame::
michael@0 310
michael@0 311 <layout>
michael@0 312 nsScrollBoxFrame::
michael@0 313
michael@0 314 <layout>
michael@0 315 nsTextFrame::
michael@0 316
michael@0 317 <layout>
michael@0 318 nsTableRowFrame::
michael@0 319
michael@0 320 <layout>
michael@0 321 nsTableRowGroupFrame::
michael@0 322
michael@0 323 <layout>
michael@0 324 nsViewManager::
michael@0 325
michael@0 326 <layout>
michael@0 327 PresShell::ProcessReflowCommands
michael@0 328
michael@0 329
michael@0 330 # ======================================================================
michael@0 331 # Rules that match higher up on the stack
michael@0 332 # These go later.
michael@0 333 # ======================================================================
michael@0 334
michael@0 335 <preferences>
michael@0 336 PREF_
michael@0 337
michael@0 338 <bookmarks>
michael@0 339 nsBookmarksService::
michael@0 340
michael@0 341 <xbl>
michael@0 342 nsXBLService::LoadBindings
michael@0 343
michael@0 344 <xbl>
michael@0 345 nsXBLBinding::ExecuteAttachedHandler
michael@0 346
michael@0 347 <js>
michael@0 348 nsXULDocument::LoadScript
michael@0 349
michael@0 350 <js>
michael@0 351 nsXULDocument::ExecuteScript
michael@0 352
michael@0 353 <xul>
michael@0 354 XULContentSinkImpl::Open
michael@0 355
michael@0 356 <rdf>
michael@0 357 RDFContentSinkImpl::HandleEndElement
michael@0 358
michael@0 359 <html>
michael@0 360 HTMLContentSink::AddAttributes
michael@0 361
michael@0 362 <html>
michael@0 363 HTMLContentSink::OpenContainer
michael@0 364
michael@0 365 <html>
michael@0 366 HTMLContentSink::CloseContainer
michael@0 367
michael@0 368 # XXX whom to account LoadImage to? I am going with images.
michael@0 369 <images>
michael@0 370 imgLoader::LoadImage
michael@0 371
michael@0 372 <html>
michael@0 373 StackArena::
michael@0 374
michael@0 375 # ======================================================================
michael@0 376 # Even more genralized rules. There could be lots of activity that
michael@0 377 # happens below them in the stack. But we are sure we have categorized
michael@0 378 # a lot of them by using the rules above and know the category of the
michael@0 379 # most of the rest.
michael@0 380 # ======================================================================
michael@0 381
michael@0 382 <rdf>
michael@0 383 RDFContentSinkImpl::
michael@0 384
michael@0 385 <dom>
michael@0 386 nsGenericDOMDataNode::
michael@0 387
michael@0 388 <dom>
michael@0 389 nsDOMClassInfo::
michael@0 390
michael@0 391 <dom>
michael@0 392 nsDOMSOFactory::
michael@0 393
michael@0 394 <xul>
michael@0 395 nsXULTemplateBuilder::
michael@0 396
michael@0 397 <xul>
michael@0 398 XULContentSinkImpl::HandleEndElement
michael@0 399
michael@0 400 <xul>
michael@0 401 nsChromeRegistry::
michael@0 402
michael@0 403 <js>
michael@0 404 nsJSContext::EvaluateString
michael@0 405
michael@0 406 # Almost all of what is left with XULContentSink belongs to xul
michael@0 407 # Also, this was roughly 0.3% of startup memory
michael@0 408 <xul>
michael@0 409 XULContentSinkImpl::
michael@0 410
michael@0 411 # XXX this is a wild guess -> html What remains here is about
michael@0 412 # XXX 1.5% of startup footprint
michael@0 413 <html>
michael@0 414 HTMLContentSink::
michael@0 415
michael@0 416 <xbl>
michael@0 417 nsXBLContentSink::
michael@0 418
michael@0 419 <xbl>
michael@0 420 nsXBLStreamListener::OnDataAvailable
michael@0 421
michael@0 422 <necko>
michael@0 423 nsIOService::NewURI
michael@0 424
michael@0 425 <necko>
michael@0 426 nsIOService::NewChannelFromURI
michael@0 427
michael@0 428 <necko>
michael@0 429 nsSegmentedBuffer::AppendNewSegment
michael@0 430
michael@0 431 <necko>
michael@0 432 nsHttpChannel::
michael@0 433
michael@0 434 # Catchalls to help categorize
michael@0 435 # ----------------------------------------------------------------------
michael@0 436 <js-catchall>
michael@0 437 js_
michael@0 438
michael@0 439 # Everything else
michael@0 440 # ----------------------------------------------------------------------
michael@0 441 # <uncategorized>
michael@0 442 # This is a predefined category. Don't create it yourself.

mercurial