diff options
| author | Ingo Molnar <mingo@kernel.org> | 2017-08-21 03:45:19 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2017-08-21 03:45:19 -0400 |
| commit | 94edf6f3c20c9c8ee301bde04150a91bab4bf32c (patch) | |
| tree | 4a2af658258cf42fde24c1224e44c3e6a18c2792 /kernel/rcu/rcu.h | |
| parent | d5da6457bfadf64ff78f1816ae8329dbbba19513 (diff) | |
| parent | 656e7c0c0a2e8d899f87fd7f081ea7a711146604 (diff) | |
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:
- Removal of spin_unlock_wait()
- SRCU updates
- Torture-test updates
- Documentation updates
- Miscellaneous fixes
- CPU-hotplug fixes
- Miscellaneous non-RCU fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/rcu/rcu.h')
| -rw-r--r-- | kernel/rcu/rcu.h | 128 |
1 files changed, 20 insertions, 108 deletions
diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index 808b8c85f626..e4b43fef89f5 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h | |||
| @@ -356,22 +356,10 @@ do { \ | |||
| 356 | 356 | ||
| 357 | #ifdef CONFIG_TINY_RCU | 357 | #ifdef CONFIG_TINY_RCU |
| 358 | /* Tiny RCU doesn't expedite, as its purpose in life is instead to be tiny. */ | 358 | /* Tiny RCU doesn't expedite, as its purpose in life is instead to be tiny. */ |
| 359 | static inline bool rcu_gp_is_normal(void) /* Internal RCU use. */ | 359 | static inline bool rcu_gp_is_normal(void) { return true; } |
| 360 | { | 360 | static inline bool rcu_gp_is_expedited(void) { return false; } |
| 361 | return true; | 361 | static inline void rcu_expedite_gp(void) { } |
| 362 | } | 362 | static inline void rcu_unexpedite_gp(void) { } |
| 363 | static inline bool rcu_gp_is_expedited(void) /* Internal RCU use. */ | ||
| 364 | { | ||
| 365 | return false; | ||
| 366 | } | ||
| 367 | |||
| 368 | static inline void rcu_expedite_gp(void) | ||
| 369 | { | ||
| 370 | } | ||
| 371 | |||
| 372 | static inline void rcu_unexpedite_gp(void) | ||
| 373 | { | ||
| 374 | } | ||
| 375 | #else /* #ifdef CONFIG_TINY_RCU */ | 363 | #else /* #ifdef CONFIG_TINY_RCU */ |
| 376 | bool rcu_gp_is_normal(void); /* Internal RCU use. */ | 364 | bool rcu_gp_is_normal(void); /* Internal RCU use. */ |
| 377 | bool rcu_gp_is_expedited(void); /* Internal RCU use. */ | 365 | bool rcu_gp_is_expedited(void); /* Internal RCU use. */ |
| @@ -419,12 +407,8 @@ static inline void rcutorture_get_gp_data(enum rcutorture_type test_type, | |||
| 419 | *gpnum = 0; | 407 | *gpnum = 0; |
| 420 | *completed = 0; | 408 | *completed = 0; |
| 421 | } | 409 | } |
| 422 | static inline void rcutorture_record_test_transition(void) | 410 | static inline void rcutorture_record_test_transition(void) { } |
| 423 | { | 411 | static inline void rcutorture_record_progress(unsigned long vernum) { } |
| 424 | } | ||
| 425 | static inline void rcutorture_record_progress(unsigned long vernum) | ||
| 426 | { | ||
| 427 | } | ||
| 428 | #ifdef CONFIG_RCU_TRACE | 412 | #ifdef CONFIG_RCU_TRACE |
| 429 | void do_trace_rcu_torture_read(const char *rcutorturename, | 413 | void do_trace_rcu_torture_read(const char *rcutorturename, |
| 430 | struct rcu_head *rhp, | 414 | struct rcu_head *rhp, |
| @@ -460,92 +444,20 @@ void srcutorture_get_gp_data(enum rcutorture_type test_type, | |||
| 460 | #endif | 444 | #endif |
| 461 | 445 | ||
| 462 | #ifdef CONFIG_TINY_RCU | 446 | #ifdef CONFIG_TINY_RCU |
| 463 | 447 | static inline unsigned long rcu_batches_started(void) { return 0; } | |
| 464 | /* | 448 | static inline unsigned long rcu_batches_started_bh(void) { return 0; } |
| 465 | * Return the number of grace periods started. | 449 | static inline unsigned long rcu_batches_started_sched(void) { return 0; } |
| 466 | */ | 450 | static inline unsigned long rcu_batches_completed(void) { return 0; } |
| 467 | static inline unsigned long rcu_batches_started(void) | 451 | static inline unsigned long rcu_batches_completed_bh(void) { return 0; } |
| 468 | { | 452 | static inline unsigned long rcu_batches_completed_sched(void) { return 0; } |
| 469 | return 0; | 453 | static inline unsigned long rcu_exp_batches_completed(void) { return 0; } |
| 470 | } | 454 | static inline unsigned long rcu_exp_batches_completed_sched(void) { return 0; } |
| 471 | 455 | static inline unsigned long | |
| 472 | /* | 456 | srcu_batches_completed(struct srcu_struct *sp) { return 0; } |
| 473 | * Return the number of bottom-half grace periods started. | 457 | static inline void rcu_force_quiescent_state(void) { } |
| 474 | */ | 458 | static inline void rcu_bh_force_quiescent_state(void) { } |
| 475 | static inline unsigned long rcu_batches_started_bh(void) | 459 | static inline void rcu_sched_force_quiescent_state(void) { } |
| 476 | { | 460 | static inline void show_rcu_gp_kthreads(void) { } |
| 477 | return 0; | ||
| 478 | } | ||
| 479 | |||
| 480 | /* | ||
| 481 | * Return the number of sched grace periods started. | ||
| 482 | */ | ||
| 483 | static inline unsigned long rcu_batches_started_sched(void) | ||
| 484 | { | ||
| 485 | return 0; | ||
| 486 | } | ||
| 487 | |||
| 488 | /* | ||
| 489 | * Return the number of grace periods completed. | ||
| 490 | */ | ||
| 491 | static inline unsigned long rcu_batches_completed(void) | ||
| 492 | { | ||
| 493 | return 0; | ||
| 494 | } | ||
| 495 | |||
| 496 | /* | ||
| 497 | * Return the number of bottom-half grace periods completed. | ||
| 498 | */ | ||
| 499 | static inline unsigned long rcu_batches_completed_bh(void) | ||
| 500 | { | ||
| 501 | return 0; | ||
| 502 | } | ||
| 503 | |||
| 504 | /* | ||
| 505 | * Return the number of sched grace periods completed. | ||
| 506 | */ | ||
| 507 | static inline unsigned long rcu_batches_completed_sched(void) | ||
| 508 | { | ||
| 509 | return 0; | ||
| 510 | } | ||
| 511 | |||
| 512 | /* | ||
| 513 | * Return the number of expedited grace periods completed. | ||
| 514 | */ | ||
| 515 | static inline unsigned long rcu_exp_batches_completed(void) | ||
| 516 | { | ||
| 517 | return 0; | ||
| 518 | } | ||
| 519 | |||
| 520 | /* | ||
| 521 | * Return the number of expedited sched grace periods completed. | ||
| 522 | */ | ||
| 523 | static inline unsigned long rcu_exp_batches_completed_sched(void) | ||
| 524 | { | ||
| 525 | return 0; | ||
| 526 | } | ||
| 527 | |||
| 528 | static inline unsigned long srcu_batches_completed(struct srcu_struct *sp) | ||
| 529 | { | ||
| 530 | return 0; | ||
| 531 | } | ||
| 532 | |||
| 533 | static inline void rcu_force_quiescent_state(void) | ||
| 534 | { | ||
| 535 | } | ||
| 536 | |||
| 537 | static inline void rcu_bh_force_quiescent_state(void) | ||
| 538 | { | ||
| 539 | } | ||
| 540 | |||
| 541 | static inline void rcu_sched_force_quiescent_state(void) | ||
| 542 | { | ||
| 543 | } | ||
| 544 | |||
| 545 | static inline void show_rcu_gp_kthreads(void) | ||
| 546 | { | ||
| 547 | } | ||
| 548 | |||
| 549 | #else /* #ifdef CONFIG_TINY_RCU */ | 461 | #else /* #ifdef CONFIG_TINY_RCU */ |
| 550 | extern unsigned long rcutorture_testseq; | 462 | extern unsigned long rcutorture_testseq; |
| 551 | extern unsigned long rcutorture_vernum; | 463 | extern unsigned long rcutorture_vernum; |
